NAME

Test2::Harness::Settings - Configuration settings for Test2::Harness.

DESCRIPTION

This module represents the options provided at the command line. Each option has a prefix, and each prefix can be accessed from the settings.

SYNOPSIS

    # You will rarely if ever need to construct settings yourself, usually a
    # component of Test2::Harness will expose them to you.
    my $settings = $thing->settings;

    # All prefixes have a method generated for them via AUTOLOAD
    my $display = $settings->display;

    # You can also use the prefix method
    my $display = $settings->prefix('display');


    # The prefix can be used in a similar way
    my $verbose = $settings->display->verbose;

See Test2::Harness::Settings::Prefix for more details on how to use the prefixes.

METHODS

Note that any prefix that does not conflict with the predefined methods can be accessed via AUTOLOAD generating the methods as needed.

$settings->define_prefix($prefix_name)

This is used to create a prefix.

$bool = $settings->check_prefix($prefix_name)

This is used to check if a prefix is defined or not.

$prefix = $settings->prefix($prefix_name)
$prefix = $settings->$prefix_name

This will retrieve a prefix if it exists. If the prefix is not defined this will throw an exception. If you are unsure if a prefix exists use $settings-check_prefix($prefix_name)>.

$thing = $settings->build($prefix_name, $class, @args)

This will create an instance of $class passing the key/value pairs from the specified prefix as arguments. Additional arguments can be provided in @args.

$hashref = $settings->TO_JSON()

This method allows settings to be serialized into JSON.

SOURCE

The source code repository for Test2-Harness can be found at http://github.com/Test-More/Test2-Harness/.

MAINTAINERS

Chad Granum <exodist@cpan.org>

AUTHORS

Chad Granum <exodist@cpan.org>

COPYRIGHT

Copyright 2020 Chad Granum <exodist7@gmail.com>.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See http://dev.perl.org/licenses/