Config-App
view release on metacpan or search on metacpan
lib/Config/App.pm view on Meta::CPAN
change => { some => { conf => 1138 } }
});
# same as new() except will silently return undef on failure
my $conf5 = Config::App->find;
=head1 DESCRIPTION
The intent of this module is to provide for projects (within a directory tree)
configuration fetcher and merger functionality that supports configuration files
that may include other files and "cascade" or merge bits of these files into an
"active" configuration based on server name, user account name the process is
running under, and/or enviornment variable flag. The goal being that a single
unified configuration can be built from a set of files (real files or URLs) and
slices of that configuration can be used as the active configuration in any
enviornment.
You can write configuration files in YAML or JSON. These files can be local
or served through some sort of URL.
=head2 Cascading Configurations
lib/Config/App.pm view on Meta::CPAN
This is mostly for debugging purposes, to know from where your configuration
was derived.
=head1 METHODS
The following are the supported methods of this module:
=head2 new
The constructor will return an object that can be used to query and alter the
derived cascaded configuration.
# seeks initial conf file "config/app.yaml" (then others)
my $conf = Config::App->new;
By default, with no parameters passed, the constructor assumes the initial
configuration file is, in order, one of the following:
=over 4
=item *
lib/Config/App.pm view on Meta::CPAN
=head2 put
This method allows you to alter the application configuration at runtime. It
expects that you provide a path to a node and the value that will replace that
node's current value.
$conf->put( qw( database dbname new_db_name ) );
=head2 conf
This method will return the entire derived cascaded configuration data set.
But more interesting is that you can pass in data structures to alter the
configuration.
my $full_conf_as_data_structure = $conf->conf;
my $new_full_conf_as_data_structure = $conf->conf({
change => { some => { conf => 1138 } }
});
=head2 root_dir
( run in 0.550 second using v1.01-cache-2.11-cpan-49f99fa48dc )