NAME
Config::MVP::Assembler - multivalue-property config-loading state machine
VERSION
version 0.092210
DESCRIPTION
Config::MVP::Assembler is a helper for constructing a Config::MVP::Sequence object.
TYPICAL USE
my $assembler = Config::MVP::Assembler->new;
# Maybe you want a starting section:
my $section = $assembler->section_class->new({ name => '_' });
$assembler->sequence->add_section($section);
# We'll add some values, which will go to the starting section:
$assembler->add_value(x => 10);
$assembler->add_value(y => 20);
# Change to a new section...
$assembler->change_section($moniker);
# ...and add values to that section.
$assembler->add_value(x => 100);
$assembler->add_value(y => 200);
The code above creates an assembler and populates it step by step. In the end, to get values, you could do something like this:
my @output;
for my $section ($assembler->sequence->sections) {
push @output, [ $section->name, $section->package, $section->payload ];
}
When changing sections, the given section "moniker" is used for the new section name. The result of passing that moniker to the assembler's "expand_package"
method is used as the section's package name. (By default, this method does nothing.) The new section's multivalue_args
and aliases
are determined by calling the mvp_multivalue_args
and mvp_aliases
methods on the package.
AUTHOR
Ricardo Signes <rjbs@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2009 by Ricardo Signes.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.