made the local suffix overrideable as per robkinyon's suggestion v0.12
Brian Cassidy [Fri, 28 Jul 2006 17:56:42 +0000 (17:56 +0000)]
Changes
lib/Catalyst/Plugin/ConfigLoader.pm

diff --git a/Changes b/Changes
index cbb8676..0aaad62 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,6 +1,7 @@
 Revision history for Perl extension Catalyst::Plugin::ConfigLoader.\r
 \r
 0.12  Wed Jul 12 2006\r
+    - made the "local" suffix overrideable\r
     - fixed __path_to()__ docs\r
 \r
 0.11  Tue Jul 11 2006\r
@@ -48,4 +49,4 @@ Revision history for Perl extension Catalyst::Plugin::ConfigLoader.
     - refactoring (suggested by Christian Hansen)\r
 \r
 0.01  Sat Jan 28 2006\r
-    - original version
\ No newline at end of file
+    - original version\r
index ae13706..ab332da 100644 (file)
@@ -48,6 +48,7 @@ loaded, set the C<config()> section.
 sub setup {\r
     my $c = shift;\r
     my( $path, $extension ) = $c->get_config_path;\r
+    my $suffix = $c->get_config_local_suffix;\r
 \r
     my $finder = Module::Pluggable::Object->new(\r
         search_path => [ __PACKAGE__ ],\r
@@ -62,7 +63,7 @@ sub setup {
             push @files, $path;\r
         }\r
         else {\r
-            @files = map { ( "$path.$_", "${path}_local.$_" ) } @extensions;\r
+            @files = map { ( "$path.$_", "${path}_${suffix}.$_" ) } @extensions;\r
         }\r
 \r
         for( @files ) {\r
@@ -123,9 +124,9 @@ The order of preference is specified as:
 \r
 =item * C<$ENV{ MYAPP_CONFIG }>\r
 \r
-=item * C<$c->config->{ file }>\r
+=item * C<$c-E<gt>config-E<gt>{ file }>\r
 \r
-=item * C<$c->path_to( $application_prefix )>\r
+=item * C<$c-E<gt>path_to( $application_prefix )>\r
 \r
 =back\r
 \r
@@ -152,6 +153,35 @@ sub get_config_path {
     return( $path, $extension );\r
 }\r
 \r
+=head2 get_config_local_suffix\r
+\r
+Determines the suffix of files used to override the main config. By default\r
+this value is C<local>, but it can be specified in the following order of preference:\r
+\r
+=over 4\r
+\r
+=item * C<$ENV{ CATALYST_CONFIG_LOCAL_SUFFIX }>\r
+\r
+=item * C<$ENV{ MYAPP_CONFIG_LOCAL_SUFFIX }>\r
+\r
+=item * C<$c-E<gt>config-E<gt>{ config_local_suffix }>\r
+\r
+\r
+=back\r
+\r
+=cut\r
+\r
+sub get_config_local_suffix {\r
+    my $c       = shift;\r
+    my $appname = ref $c || $c;\r
+    my $suffix  = $ENV{ CATALYST_CONFIG_LOCAL_SUFFIX }\r
+        || $ENV{ Catalyst::Utils::class2env( $appname ) . '_CONFIG_LOCAL_SUFFIX' }\r
+        || $c->config->{ config_local_suffix }\r
+        || 'local';\r
+\r
+    return $suffix;\r
+}\r
+\r
 sub _fix_syntax {\r
     my $config     = shift;\r
     my @components = (\r