NAME

Data::Serializable - Moose role that adds serialization support to any class

VERSION

version 0.40.1

SYNOPSIS

package MyClass;
use Moose;
with 'Data::Serializable';
no Moose;

package main;
my $obj = MyClass->new( serializer_module => 'JSON' );
my $json = $obj->serialize( "Foo" );
...
my $str = $obj->deserialize( $json );

DESCRIPTION

A Moose-based role that enables the consumer to easily serialize/deserialize data structures. The default serializer is Storable, but any serializer in the Data::Serializer hierarchy can be used automatically. You can even install your own custom serializer if the pre-defined ones are not useful for you.

ATTRIBUTES

throws_exception

Defines if methods should throw exceptions or return undef. Default is to throw exceptions. Override default value like this:

has '+throws_expection' => ( default => 0 );

serializer_module

Name of a predefined module that you wish to use for serialization. Any submodule of Data::Serializer is automatically supported. The built-in support for Storable doesn't require Data::Serializer.

serializer

If none of the predefined serializers work for you, you can install your own. This should be a code reference that takes one argument (the message to encode) and returns a scalar back to the caller with the serialized data.

deserializer

Same as serializer, but to decode the data.

METHODS

serialize($message)

Runs the serializer on the specified argument.

deserialize($message)

Runs the deserializer on the specified argument.

SEE ALSO

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc Data::Serializable

Websites

Bugs

Please report any bugs or feature requests to bug-data-serializable at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Data-Serializable. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

AUTHOR

Robin Smidsrød <robin@smidsrod.no>

COPYRIGHT AND LICENSE

This software is copyright (c) 2010 by Robin Smidsrød.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.