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' or verify_failure_ok 1 or no_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 or no_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 use use 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.