diff options
Diffstat (limited to 'lib/MooseX/Net/API/Parser')
-rw-r--r-- | lib/MooseX/Net/API/Parser/JSON.pm | 43 | ||||
-rw-r--r-- | lib/MooseX/Net/API/Parser/XML.pm | 50 | ||||
-rw-r--r-- | lib/MooseX/Net/API/Parser/YAML.pm | 43 |
3 files changed, 136 insertions, 0 deletions
diff --git a/lib/MooseX/Net/API/Parser/JSON.pm b/lib/MooseX/Net/API/Parser/JSON.pm new file mode 100644 index 0000000..bf4c08b --- /dev/null +++ b/lib/MooseX/Net/API/Parser/JSON.pm @@ -0,0 +1,43 @@ +package MooseX::Net::API::Parser::JSON; + +use JSON; +use Moose; +extends 'MooseX::Net::API::Parser'; + +sub encode { + my ($self, $content) = @_; + return JSON::encode_json($content); +} + +sub decode { + my ($self, $content) = @_; + return JSON::decode_json($content); +} + +1; +__END__ + +=head1 NAME + +MooseX::Net::API::Parser::JSON + +=head1 SYNOPSIS + +=head1 DESCRIPTION + +=head1 AUTHOR + +franck cuny E<lt>franck@lumberjaph.netE<gt> + +=head1 SEE ALSO + +=head1 LICENSE + +Copyright 2010 by Linkfluence + +http://linkfluence.net + +This library is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. + +=cut diff --git a/lib/MooseX/Net/API/Parser/XML.pm b/lib/MooseX/Net/API/Parser/XML.pm new file mode 100644 index 0000000..7198175 --- /dev/null +++ b/lib/MooseX/Net/API/Parser/XML.pm @@ -0,0 +1,50 @@ +package MooseX::Net::API::Parser::XML; + +use XML::Simple; +use Moose; +extends 'MooseX::Net::API::Parser'; + +has _xml_parser => ( + is => 'rw', + isa => 'XML::Simple', + lazy => 1, + default => sub { XML::SImple->new(ForceArray => 0) } +); + +sub encode { + my ($self, $content) = @_; + return $self->_xml_parser->XMLin($content); +} + +sub decode { + my ($self, $content) = @_; + return $self->_xml_parser->XMLout($content); +} + +1; +__END__ + +=head1 NAME + +MooseX::Net::API::Parser::XML + +=head1 SYNOPSIS + +=head1 DESCRIPTION + +=head1 AUTHOR + +franck cuny E<lt>franck@lumberjaph.netE<gt> + +=head1 SEE ALSO + +=head1 LICENSE + +Copyright 2010 by Linkfluence + +http://linkfluence.net + +This library is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. + +=cut diff --git a/lib/MooseX/Net/API/Parser/YAML.pm b/lib/MooseX/Net/API/Parser/YAML.pm new file mode 100644 index 0000000..5258796 --- /dev/null +++ b/lib/MooseX/Net/API/Parser/YAML.pm @@ -0,0 +1,43 @@ +package MooseX::Net::API::Parser::YAML; + +use YAML::Syck; +use Moose; +extends 'MooseX::Net::API::Parser'; + +sub encode { + my ($self, $content) = @_; + return Dump($content); +} + +sub decode { + my ($self, $content) = @_; + return Load($content); +} + +1; +__END__ + +=head1 NAME + +MooseX::Net::API::Parser::YAML + +=head1 SYNOPSIS + +=head1 DESCRIPTION + +=head1 AUTHOR + +franck cuny E<lt>franck@lumberjaph.netE<gt> + +=head1 SEE ALSO + +=head1 LICENSE + +Copyright 2010 by Linkfluence + +http://linkfluence.net + +This library is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. + +=cut |