fix ConfigLoader
[catagits/Catalyst-Plugin-ConfigLoader.git] / lib / Catalyst / Plugin / ConfigLoader / YAML.pm
CommitLineData
b2d85594 1package Catalyst::Plugin::ConfigLoader::YAML;\r
2\r
3use strict;\r
4use warnings;\r
5\r
b2d85594 6=head1 NAME\r
7\r
8Catalyst::Plugin::ConfigLoader::YAML - Load YAML config files\r
9\r
10=head1 DESCRIPTION\r
11\r
12Loads YAML files. Example:\r
13\r
14 ---\r
15 name: TestApp\r
c7413665 16 Controller::Foo:\r
b2d85594 17 foo: bar\r
18\r
19=head1 METHODS\r
20\r
c7413665 21=head2 extensions( )\r
22\r
23return an array of valid extensions (C<yml>, C<yaml>).\r
24\r
25=cut\r
26\r
27sub extensions {\r
28 return qw( yml yaml );\r
29}\r
30\r
b2d85594 31=head2 load( $file )\r
32\r
33Attempts to load C<$file> as a YAML file.\r
34\r
35=cut\r
36\r
37sub load {\r
c7413665 38 my $class = shift;\r
39 my $file = shift;\r
b2d85594 40\r
c7413665 41 eval { require YAML::Syck; };\r
42 if( $@ ) {\r
43 require YAML;\r
44 return YAML::LoadFile( $file );\r
b2d85594 45 }\r
46 else {\r
468464b8 47 my $content;\r
48 open(my $fh, $file) or die $!;\r
49 { local $/; $content = <$fh> }\r
50 close $fh;\r
c7413665 51 return YAML::Syck::Load( $content );\r
b2d85594 52 }\r
53}\r
54\r
55=head1 AUTHOR\r
56\r
57=over 4 \r
58\r
59=item * Brian Cassidy E<lt>bricas@cpan.orgE<gt>\r
60\r
61=back\r
62\r
63=head1 COPYRIGHT AND LICENSE\r
64\r
65Copyright 2006 by Brian Cassidy\r
66\r
67This library is free software; you can redistribute it and/or modify\r
68it under the same terms as Perl itself. \r
69\r
70=head1 SEE ALSO\r
71\r
72=over 4 \r
73\r
74=item * L<Catalyst>\r
75\r
d6277728 76=item * L<Catalyst::Plugin::ConfigLoader>\r
c7413665 77\r
b2d85594 78=back\r
79\r
80=cut\r
81\r
821;