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