\r
{\r
"name": "TestApp",\r
- "Controller::Config": {\r
+ "Controller::Foo": {\r
"foo": "bar"\r
}\r
}\r
\r
=head1 METHODS\r
\r
+=head2 extensions( )\r
+\r
+return an array of valid extensions (C<json>, C<jsn>).\r
+\r
+=cut\r
+\r
+sub extensions {\r
+ return qw( json jsn );\r
+}\r
+\r
=head2 load( $file )\r
\r
Attempts to load C<$file> as a JSON file.\r
=cut\r
\r
sub load {\r
- my $class = shift;\r
- my $confpath = shift;\r
+ my $class = shift;\r
+ my $file = shift;\r
\r
- my @files;\r
- if( $confpath =~ /\.(.{3,4})$/ ) {\r
- return unless $1 =~ /^jso?n$/;\r
- @files = $confpath;\r
+ my $content = read_file( $file );\r
+\r
+ eval { require JSON::Syck; };\r
+ if( $@ ) {\r
+ require JSON;\r
+ JSON->import;\r
+ return jsonToObj( $content );\r
}\r
else {\r
- @files = map { "$confpath.$_" } qw( json jsn );\r
- }\r
- \r
- for my $file ( @files ) {\r
- next unless -f $file;\r
- \r
- my $content = read_file( $file );\r
-\r
- eval { require JSON::Syck; };\r
- if( $@ ) {\r
- require JSON;\r
- JSON->import;\r
- return jsonToObj( $content );\r
- }\r
- else {\r
- return JSON::Syck::Load( $content );\r
- }\r
+ return JSON::Syck::Load( $content );\r
}\r
}\r
\r
\r
=item * L<Catalyst>\r
\r
+=item * <Catalyst::Plugin::ConfigLoader>\r
+\r
=back\r
\r
=cut\r