fix ConfigLoader
[catagits/Catalyst-Plugin-ConfigLoader.git] / lib / Catalyst / Plugin / ConfigLoader / YAML.pm
index ec660bd..f1f6588 100644 (file)
@@ -3,8 +3,6 @@ package Catalyst::Plugin::ConfigLoader::YAML;
 use strict;\r
 use warnings;\r
 \r
-use File::Slurp;\r
-\r
 =head1 NAME\r
 \r
 Catalyst::Plugin::ConfigLoader::YAML - Load YAML config files\r
@@ -15,11 +13,21 @@ Loads YAML files. Example:
 \r
     ---\r
     name: TestApp\r
-    Controller::Config:\r
+    Controller::Foo:\r
         foo: bar\r
 \r
 =head1 METHODS\r
 \r
+=head2 extensions( )\r
+\r
+return an array of valid extensions (C<yml>, C<yaml>).\r
+\r
+=cut\r
+\r
+sub extensions {\r
+    return qw( yml yaml );\r
+}\r
+\r
 =head2 load( $file )\r
 \r
 Attempts to load C<$file> as a YAML file.\r
@@ -27,30 +35,20 @@ Attempts to load C<$file> as a YAML file.
 =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 =~ /^ya?ml$/;\r
-        @files = $confpath;\r
+    eval { require YAML::Syck; };\r
+    if( $@ ) {\r
+        require YAML;\r
+        return YAML::LoadFile( $file );\r
     }\r
     else {\r
-        @files = map { "$confpath.$_" } qw( yml yaml );\r
-    }\r
-    \r
-    for my $file ( @files ) {\r
-        next unless -f $file;\r
-\r
-        eval { require YAML::Syck; };\r
-        if( $@ ) {\r
-            require YAML;\r
-            return YAML::LoadFile( $file );\r
-        }\r
-        else {\r
-            my $content = read_file( $file );\r
-            return YAML::Syck::Load( $content );\r
-        }\r
+        my $content;\r
+        open(my $fh, $file) or die $!;\r
+        { local $/; $content = <$fh> }\r
+        close $fh;\r
+        return YAML::Syck::Load( $content );\r
     }\r
 }\r
 \r
@@ -75,6 +73,8 @@ it under the same terms as Perl itself.
 \r
 =item * L<Catalyst>\r
 \r
+=item * L<Catalyst::Plugin::ConfigLoader>\r
+\r
 =back\r
 \r
 =cut\r