diff options
author | franck cuny <franck@lumberjaph.net> | 2010-06-02 11:36:46 +0200 |
---|---|---|
committer | franck cuny <franck@lumberjaph.net> | 2010-06-02 11:36:46 +0200 |
commit | d817af5411ef2b7592e4b4f3da466e2e05fe365e (patch) | |
tree | 753f011f6bb981cc2c32a290ebdfe16bcbe5c4f6 | |
parent | remove code, let the wrapper do the work (diff) | |
download | moosex-net-api-d817af5411ef2b7592e4b4f3da466e2e05fe365e.tar.gz |
parser to (de)serialize content
-rw-r--r-- | lib/MooseX/Net/API/Parser.pm | 8 | ||||
-rw-r--r-- | lib/MooseX/Net/API/Parser/JSON.pm | 17 | ||||
-rw-r--r-- | lib/MooseX/Net/API/Parser/XML.pm | 24 | ||||
-rw-r--r-- | lib/MooseX/Net/API/Parser/YAML.pm | 17 |
4 files changed, 66 insertions, 0 deletions
diff --git a/lib/MooseX/Net/API/Parser.pm b/lib/MooseX/Net/API/Parser.pm new file mode 100644 index 0000000..d33d857 --- /dev/null +++ b/lib/MooseX/Net/API/Parser.pm @@ -0,0 +1,8 @@ +package MooseX::Net::API::Parser; + +use Moose; + +sub encode {die "must be implemented"} +sub decode {die "must be implemented"} + +1; diff --git a/lib/MooseX/Net/API/Parser/JSON.pm b/lib/MooseX/Net/API/Parser/JSON.pm new file mode 100644 index 0000000..4711a8a --- /dev/null +++ b/lib/MooseX/Net/API/Parser/JSON.pm @@ -0,0 +1,17 @@ +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; diff --git a/lib/MooseX/Net/API/Parser/XML.pm b/lib/MooseX/Net/API/Parser/XML.pm new file mode 100644 index 0000000..f831cf1 --- /dev/null +++ b/lib/MooseX/Net/API/Parser/XML.pm @@ -0,0 +1,24 @@ +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; diff --git a/lib/MooseX/Net/API/Parser/YAML.pm b/lib/MooseX/Net/API/Parser/YAML.pm new file mode 100644 index 0000000..f359831 --- /dev/null +++ b/lib/MooseX/Net/API/Parser/YAML.pm @@ -0,0 +1,17 @@ +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; |