From 356b7b43f8c8cbdd8108964f04f1d6ea033ff542 Mon Sep 17 00:00:00 2001 From: Fuji Goro Date: Fri, 19 Aug 2011 10:54:30 +0900 Subject: [PATCH] perl: add JSON.pm-like interface: Data::MessagePack->new->encode(...) --- perl/lib/Data/MessagePack.pm | 8 ++++++++ perl/t/18_new_interface.t | 15 +++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 perl/t/18_new_interface.t diff --git a/perl/lib/Data/MessagePack.pm b/perl/lib/Data/MessagePack.pm index 4a1da179..65c4bedf 100644 --- a/perl/lib/Data/MessagePack.pm +++ b/perl/lib/Data/MessagePack.pm @@ -33,6 +33,14 @@ if ( !__PACKAGE__->can('pack') ) { # this idea comes from Text::Xslate } } +sub new { + my($class) = @_; + return bless {}, $class; +} + +sub encode; *encode = __PACKAGE__->can('pack'); +sub decode; *decode = __PACKAGE__->can('unpack'); + 1; __END__ diff --git a/perl/t/18_new_interface.t b/perl/t/18_new_interface.t new file mode 100644 index 00000000..8867d208 --- /dev/null +++ b/perl/t/18_new_interface.t @@ -0,0 +1,15 @@ +#!perl +use strict; +use warnings; + +use Test::More; + +use Data::MessagePack; + +my $mp = Data::MessagePack->new(); + +is_deeply $mp->decode( $mp->encode(\%ENV) ), \%ENV; + + +done_testing; +