attemp to load local config v0.05
Brian Cassidy [Tue, 18 Apr 2006 23:25:40 +0000 (23:25 +0000)]
updated docs
updated Changes
bumped version

Changes
lib/Catalyst/Plugin/ConfigLoader.pm

diff --git a/Changes b/Changes
index dcc1191..28c3b30 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,11 @@
 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
index fc68afb..f073ccf 100644 (file)
@@ -10,7 +10,7 @@ use Module::Pluggable::Fast
     require => 1;\r
 use Data::Visitor::Callback;\r
 \r
-our $VERSION = '0.04';\r
+our $VERSION = '0.05';\r
 \r
 =head1 NAME\r
 \r
@@ -30,17 +30,21 @@ Catalyst::Plugin::ConfigLoader - Load config files of various types
 \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
@@ -58,7 +62,7 @@ sub setup {
             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
@@ -84,8 +88,10 @@ at runtime. If you need to do this to properly configure any
 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