bump ver (missing commit from marcus?). other minor meta-changes.
[catagits/Catalyst-Plugin-ConfigLoader.git] / lib / Catalyst / Plugin / ConfigLoader.pm
index 930d7c1..5240417 100644 (file)
@@ -4,11 +4,11 @@ use strict;
 use warnings;
 
 use Config::Any;
-use NEXT;
+use MRO::Compat;
 use Data::Visitor::Callback;
 use Catalyst::Utils ();
 
-our $VERSION = '0.20';
+our $VERSION = '0.24';
 
 =head1 NAME
 
@@ -26,12 +26,30 @@ Catalyst::Plugin::ConfigLoader - Load config files of various types
     # you can specify a file if you'd like
     __PACKAGE__->config( 'Plugin::ConfigLoader' => { file => 'config.yaml' } );    
 
+  In the file, assuming it's in YAML format:
+
+    foo: bar
+
+  Accessible through the context object, or the class itself
+
+   $c->config->{foo}    # bar
+   MyApp->config->{foo} # bar
+
 =head1 DESCRIPTION
 
 This module will attempt to load find and load a configuration
 file of various types. Currently it supports YAML, JSON, XML,
 INI and Perl formats. Special configuration for a particular driver format can
 be stored in C<MyApp-E<gt>config-E<gt>{ 'Plugin::ConfigLoader' }-E<gt>{ driver }>.
+For example, to pass arguments to L<Config::General>, use the following:
+
+    __PACKAGE__->config( 'Plugin::ConfigLoader' => {
+        driver => {
+            'General' => { -LowerCaseNames => 1 }
+        }
+    } );
+
+See L<Config::Any>'s C<driver_args> parameter for more information.
 
 To support the distinction between development and production environments,
 this module will also attemp to load a local config (e.g. myapp_local.yaml)
@@ -58,7 +76,6 @@ sub setup {
                 || {},
         }
     );
-
     # map the array of hashrefs to a simple hash
     my %configs = map { %$_ } @$cfg;
 
@@ -79,7 +96,7 @@ sub setup {
     $c->load_config( { $_ => $configs{ $_ } } ) for @main, @locals;
 
     $c->finalize_config;
-    $c->NEXT::setup( @_ );
+    $c->next::method( @_ );
 }
 
 =head2 load_config
@@ -118,14 +135,14 @@ sub find_files {
 
     my @files;
     if ( $extension ) {
-        next unless grep { $_ eq $extension } @extensions;
+        die "Unable to handle files with the extension '${extension}'"
+            unless grep { $_ eq $extension } @extensions;
         ( my $local = $path ) =~ s{\.$extension}{_$suffix.$extension};
         push @files, $path, $local;
     }
     else {
         @files = map { ( "$path.$_", "${path}_${suffix}.$_" ) } @extensions;
     }
-
     @files;
 }
 
@@ -152,27 +169,16 @@ The order of preference is specified as:
 If either of the first two user-specified options are directories, the
 application prefix will be added on to the end of the path.
 
-DEPRECATION NOTICE: C<$c-E<gt>config-E<gt>{ file }> is deprecated
-and will be removed in the next release.
-
 =cut
 
 sub get_config_path {
     my $c = shift;
 
-    # deprecation notice
-    if ( exists $c->config->{ file } ) {
-        $c->log->warn(
-            q(*** "file" config parameter has been deprecated in favor of "$c->config->{ 'Plugin::ConfigLoader' }->{ file }")
-        );
-        sleep( 3 );
-    }
 
     my $appname = ref $c || $c;
     my $prefix  = Catalyst::Utils::appprefix( $appname );
     my $path    = Catalyst::Utils::env_value( $c, 'CONFIG' )
         || $c->config->{ 'Plugin::ConfigLoader' }->{ file }
-        || $c->config->{ file }    # to be removed next release
         || $c->path_to( $prefix );
 
     my ( $extension ) = ( $path =~ m{\.(.{1,4})$} );
@@ -200,27 +206,14 @@ this value is C<local>, but it can be specified in the following order of prefer
 
 =back
 
-DEPRECATION NOTICE: C<$c-E<gt>config-E<gt>{ config_local_suffix }> is deprecated
-and will be removed in the next release.
-
 =cut
 
 sub get_config_local_suffix {
     my $c = shift;
 
-    # deprecation notice
-    if ( exists $c->config->{ config_local_suffix } ) {
-        $c->log->warn(
-            q(*** "config_local_suffix" config parameter has been deprecated in favor of "$c->config->{ 'Plugin::ConfigLoader' }->{ config_local_suffix }")
-        );
-        sleep( 3 );
-    }
-
     my $appname = ref $c || $c;
     my $suffix = Catalyst::Utils::env_value( $c, 'CONFIG_LOCAL_SUFFIX' )
         || $c->config->{ 'Plugin::ConfigLoader' }->{ config_local_suffix }
-        || $c->config
-        ->{ config_local_suffix }    # to be remove in the next release
         || 'local';
 
     return $suffix;
@@ -234,7 +227,7 @@ sub _fix_syntax {
             values => delete $config->{ lc $_ } || delete $config->{ $_ }
         },
         grep { ref $config->{ lc $_ } || ref $config->{ $_ } }
-            qw( Component Model M View V Controller C )
+            qw( Component Model M View V Controller C Plugin )
     );
 
     foreach my $comp ( @components ) {
@@ -338,7 +331,7 @@ Work to this module has been generously sponsored by:
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright 2008 by Brian Cassidy
+Copyright 2006-2009 by Brian Cassidy
 
 This library is free software; you can redistribute it and/or modify
 it under the same terms as Perl itself.