NAME
App::Fetchware::CreateConfigOptions - Used by fetchware extensions to create their configuration options.
VERSION
version 1.016
SYNOPSIS
use App::Fetchware::ExportAPI KEEP => [qw(start end)],
OVERRIDE =>
[qw(lookup download verify unarchive build install uninstall)];
DESCRIPTION
App::Fetchware::ExportAPI is a utility helper class for fetchware extensions. It makes it easy to ensure that your fetchware extension implements or imports all of App::Fetchware's required API subroutines.
See section "CREATING A FETCHWARE EXTENSION" in App::Fetchware in App::Fetchware's documentation for more information on how to create your very own fetchware extension.
CREATECONFIGOPTIONS'S API METHODS
App::Fetchware::CreateConfigOptions (CreateConfigOptions) has only one user-servicable part--it's import() method. It works just like Exporter's import() method except it takes arguments differently, and checks it's arguments more thuroughly.
import()
# You don't actually call import() unless you're doing something weird.
# Instead, use calls import for you.
use App::Fetchware::CreateConfigOptions
ONE => [qw(
page_name
html_page_url
user_agent
html_treebuilder_callback
download_links_callback
)],
BOOLEAN => [qw(
keep_destination_directory
)],
IMPORT => [qw(
temp_dir
)],
;
Creates configuration options of the same types App::Fetchware uses. These are:
- 1. ONE - Stores one and only ever one value. If the configuration option is used more than once, an exception is thrown.
- 2. ONEARRREF - Stores one or more values. But only stores a list when provided a list when you call it such as
install_commands './configure', 'make', 'make install'
would create a configuration option with three values. However, if a ONEARRREF is called more than once, and exception is also thrown. - 3. MANY - Stores many values one at a time just like ONEARRREF, but can also be called any number of times, and values are appended to any already existing ones.
- 4. BOOLEAN - Stores true or false values such as
stay_root 'On'
orverify_failure_ok 1
orno_install 'True'
In addition to App::Fetchware's types, import() features an additional type:
- 5. IMPORT - the
IMPORT
this hash key does not create new configuration -
options, but instead imports already defined ones from App::Fetchware allowing you to reuse popular configuration options like
temp_dir
orno_install
in your fetchware extension.
Just use any of ONE
, ONEARRREF
, MANY
, or BOOLEAN
as faux hash keys being sure to wrap their arguments in array reference brackets []
- LIMITATION
-
import() creates subroutines that have prototypes, but in order for perl to honor those prototypes perl must know about them at compile-time; therefore, that is why import() must be called inside a
BEGIN
block. The best and most obvious way of doing that is useuse App::Fetchware::CreateConfigOptions [options];
.
ERRORS
As with the rest of App::Fetchware, App::Fetchware::ExportAPI does not return any error codes; instead, all errors are die()'d if it's Test::Fetchware's error, or croak()'d if its the caller's fault.
AUTHOR
David Yingling <deeelwy@gmail.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2016 by David Yingling.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.