distro work
[p5sagit/Config-Any.git] / lib / Config / Any / XML.pm
index 42a8380..4660338 100644 (file)
-package Config::Any::XML;\r
-\r
-use strict;\r
-use warnings;\r
-\r
-=head1 NAME\r
-\r
-Config::Any::XML - Load XML config files\r
-\r
-=head1 DESCRIPTION\r
-\r
-Loads XML files. Example:\r
-\r
-    <config>\r
-        <name>TestApp</name>\r
-        <component name="Controller::Foo">\r
-            <foo>bar</foo>\r
-        </component>\r
-        <model name="Baz">\r
-            <qux>xyzzy</qux>\r
-        </model>\r
-    </config>\r
-\r
-=head1 METHODS\r
-\r
-=head2 extensions( )\r
-\r
-return an array of valid extensions (C<xml>).\r
-\r
-=cut\r
-\r
-sub extensions {\r
-    return qw( xml );\r
-}\r
-\r
-=head2 load( $file )\r
-\r
-Attempts to load C<$file> as an XML file.\r
-\r
-=cut\r
-\r
-sub load {\r
-    my $class = shift;\r
-    my $file  = shift;\r
-\r
-    require XML::Simple;\r
-    XML::Simple->import;\r
-    my $config = XMLin( \r
-               $file, \r
-               ForceArray => [ qw( component model view controller ) ],\r
-       );\r
-\r
-       return $class->_coerce($config);\r
-}\r
-\r
-sub _coerce {\r
-       # coerce the XML-parsed config into the correct format\r
-       my $class = shift;\r
-       my $config = shift;\r
-       my $out;\r
-       for my $k (keys %$config) {\r
-               my $ref = $config->{$k};\r
-               my $name = ref $ref ? delete $ref->{name} : undef;\r
-               if (defined $name) {\r
-                       $out->{$k}->{$name} = $ref;     \r
-               } else {\r
-                       $out->{$k} = $ref;\r
-               }\r
-       }\r
-       $out;\r
-}\r
-\r
-=head1 AUTHOR\r
-\r
-=over 4 \r
-\r
-=item * Brian Cassidy E<lt>bricas@cpan.orgE<gt>\r
-\r
-=item * Joel Bernstein E<lt>rataxis@cpan.orgE<gt>\r
-\r
-=back\r
-\r
-=head1 COPYRIGHT AND LICENSE\r
-\r
-Copyright 2006 by Brian Cassidy\r
-\r
-This library is free software; you can redistribute it and/or modify\r
-it under the same terms as Perl itself. \r
-\r
-=head1 SEE ALSO\r
-\r
-=over 4 \r
-\r
-=item * L<Catalyst>\r
-\r
-=item * L<Config::Any>\r
-\r
-=item * L<XML::Simple>\r
-\r
-=back\r
-\r
-=cut\r
-\r
-1;\r
+package Config::Any::XML;
+
+use strict;
+use warnings;
+
+=head1 NAME
+
+Config::Any::XML - Load XML config files
+
+=head1 DESCRIPTION
+
+Loads XML files. Example:
+
+    <config>
+        <name>TestApp</name>
+        <component name="Controller::Foo">
+            <foo>bar</foo>
+        </component>
+        <model name="Baz">
+            <qux>xyzzy</qux>
+        </model>
+    </config>
+
+=head1 METHODS
+
+=head2 extensions( )
+
+return an array of valid extensions (C<xml>).
+
+=cut
+
+sub extensions {
+    return qw( xml );
+}
+
+=head2 load( $file )
+
+Attempts to load C<$file> as an XML file.
+
+=cut
+
+sub load {
+    my $class = shift;
+    my $file  = shift;
+
+    require XML::Simple;
+    XML::Simple->import;
+    my $config = XMLin( 
+        $file, 
+        ForceArray => [ qw( component model view controller ) ],
+    );
+
+    return $class->_coerce($config);
+}
+
+sub _coerce {
+    # coerce the XML-parsed config into the correct format
+    my $class = shift;
+    my $config = shift;
+    my $out;
+    for my $k (keys %$config) {
+        my $ref = $config->{$k};
+        my $name = ref $ref ? delete $ref->{name} : undef;
+        if (defined $name) {
+            $out->{$k}->{$name} = $ref; 
+        } else {
+            $out->{$k} = $ref;
+        }
+    }
+    $out;
+}
+
+=head1 AUTHOR
+
+=over 4 
+
+=item * Brian Cassidy E<lt>bricas@cpan.orgE<gt>
+
+=item * Joel Bernstein E<lt>rataxis@cpan.orgE<gt>
+
+=back
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright 2006 by Brian Cassidy
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself. 
+
+=head1 SEE ALSO
+
+=over 4 
+
+=item * L<Catalyst>
+
+=item * L<Config::Any>
+
+=item * L<XML::Simple>
+
+=back
+
+=cut
+
+1;