logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

MooX::ConfigFromFile::Role::HashMergeLoaded - allows better merge strategies for multiple config files

Acknowledgements

Attributes

config_merge_behavior
       This attribute contains the behavior which will config_merger use to merge particular loaded
       configurations.

   config_merger
       This attribute contains the instance of Hash::Merge used to merge the raw_loaded_config into
       loaded_config.

   loaded_config
       This role modifies the builder for loaded_config by merging the items from raw_loaded_config in order of
       appearance. It is assumed that more relevant config files are in front and are filled up with defaults in
       following ones.

Author

       Jens Rehsack, "<rehsack at cpan.org>"

Description

       This is an additional role for MooX::ConfigFromFile to allow better merging of deep structures.

Name

       MooX::ConfigFromFile::Role::HashMergeLoaded - allows better merge strategies for multiple config files

Synopsis

         package MyApp::Cmd::TPau;

         use DBI;
         use Moo;
         use MooX::Cmd with_configfromfile => 1;

         with "MooX::ConfigFromFile::Role::HashMergeLoaded";

         has csv => (is => "ro", required => 1);

         sub execute
         {
             my $self = shift;
             DBI->connect("DBI::csv:", undef, undef, $self->csv);
         }

         __END__
         $ cat etc/myapp.json
         {
           "csv": {
             "f_ext": ".csv/r",
             "csv_sep_char": ";",
             "csv_class": "Text::CSV_XS"
           }
         }
         $cat etc/myapp-tpau.json
         {
           "csv": {
             "f_dir": "data/tpau"
           }
         }

See Also