Revision history for Perl extension Catalyst::Plugin::ConfigLoader.\r
\r
+0.05 Thu Apr 18 2006\r
+ - __HOME__ now corresponds to $c->path_to( '' ) and nothing else\r
+ - __path_to( 'foo/bar' )__ turns in to $c->path_to( 'foo', 'bar' )\r
+ - attemps to load ${config}_local.$ext after ${config}.$ext for\r
+ an overriding effect\r
+\r
0.04 Wed Feb 08 2006\r
- add finalize_config method\r
- make default finalize_config traverse the config and substitute\r
require => 1;\r
use Data::Visitor::Callback;\r
\r
-our $VERSION = '0.04';\r
+our $VERSION = '0.05';\r
\r
=head1 NAME\r
\r
\r
=head1 DESCRIPTION\r
\r
-This mdoule will attempt to load find and load a configuration\r
+This module will attempt to load find and load a configuration\r
file of various types. Currently it supports YAML, JSON, XML,\r
INI and Perl formats.\r
\r
+To support the distinction between development and production environments,\r
+this module will also attemp to load a local config (e.g. myapp_local.yaml)\r
+which will override any duplicate settings.\r
+\r
=head1 METHODS\r
\r
=head2 setup( )\r
\r
This method is automatically called by Catalyst's setup routine. It will\r
attempt to use each plugin and, once a file has been successfully\r
-loaded, set the C<config()> section.\r
+loaded, set the C<config()> section. \r
\r
=cut\r
\r
push @files, $path;\r
}\r
else {\r
- push @files, "$path.$_" for @extensions;\r
+ @files = map { ( "$path.$_", "${path}_local.$_" ) } @extensions;\r
}\r
\r
for( @files ) {\r
plugins, it's important to load ConfigLoader before them.\r
ConfigLoader provides a default finalize_config method which\r
walks through the loaded config hash and replaces any strings\r
-beginning with C<< __HOME__/<path> >> with the full path to\r
-the file inside the app's home directory.\r
+beginning containing C<__HOME__> with the full path to\r
+app's home directory (i.e. C<$c-E<gt>path_to('')> ).\r
+You can also use C<__path_to('foo/bar')__> which translates to\r
+C<$c-E<gt>path_to('foo', 'bar')> \r
\r
=cut\r
\r