use warnings;\r
\r
use NEXT;\r
-use Module::Pluggable::Fast\r
- name => '_config_loaders',\r
- search => [ __PACKAGE__ ],\r
- require => 1;\r
+use Module::Pluggable::Object ();\r
use Data::Visitor::Callback;\r
\r
-our $VERSION = '0.08';\r
+our $VERSION = '0.12';\r
\r
=head1 NAME\r
\r
sub setup {\r
my $c = shift;\r
my( $path, $extension ) = $c->get_config_path;\r
- \r
- for my $loader ( $c->_config_loaders ) {\r
+\r
+ my $finder = Module::Pluggable::Object->new(\r
+ search_path => [ __PACKAGE__ ],\r
+ require => 1\r
+ );\r
+\r
+ for my $loader ( $finder->plugins ) {\r
my @files;\r
my @extensions = $loader->extensions;\r
if( $extension ) {\r
next unless -f $_;\r
my $config = $loader->load( $_ );\r
\r
- $c->debug( "Loaded Config $_" ) if $c->debug;\r
- _fix_syntax( $config );\r
- $c->config( $config ) if $config;\r
+ $c->log->debug( qq(Loaded Config "$_") ) if $c->debug;\r
+ \r
+ next if !$config;\r
+\r
+ _fix_syntax( $config );\r
+ \r
+ $c->config( $config );\r
}\r
}\r
\r
walks through the loaded config hash and replaces any strings\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
+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
my $v = Data::Visitor::Callback->new(\r
plain_value => sub {\r
return unless defined $_;\r
- s[__HOME__][ $c->path_to( '' ) ]e;\r
- s[__path_to\((.+)\)__][ $c->path_to( split( '/', $1 ) ) ]e;\r
+ s{__HOME__}{ $c->path_to( '' ) }e;\r
+ s{__path_to\((.+)\)__}{ $c->path_to( split( '/', $1 ) ) }e;\r
}\r
);\r
$v->visit( $c->config );\r
|| $c->config->{ file }\r
|| $c->path_to( $prefix );\r
\r
- my( $extension ) = ( $path =~ /\.(.{1,4})$/ );\r
+ my( $extension ) = ( $path =~ m{\.(.{1,4})$} );\r
\r
if( -d $path ) {\r
- $path =~ s/[\/\\]$//;\r
+ $path =~ s{[\/\\]$}{};\r
$path .= "/$prefix";\r
}\r
\r
map +{\r
prefix => $_ eq 'Component' ? '' : $_ . '::',\r
values => delete $config->{ lc $_ } || delete $config->{ $_ }\r
- }, qw( Component Model View Controller )\r
+ },\r
+ grep {\r
+ ref $config->{ lc $_ } || ref $config->{ $_ }\r
+ }\r
+ qw( Component Model M View V Controller C )\r
);\r
\r
foreach my $comp ( @components ) {\r