NAME
MooseX::RemoteHelper::CompositeSerialization - Serialize object recursively
VERSION
version 0.001021
SYNOPSIS
{
package
MessagePart;
has
array
=> (
remote_name
=>
'SomeColonDelimitedArray'
,
isa
=>
'ArrayRef'
,
is
=>
'ro'
,
serializer
=>
sub
{
my
(
$attr
,
$instance
) =
@_
;
return
join
(
':'
, @{
$attr
->get_value(
$instance
) } );
},
);
__PACKAGE__->meta->make_immutable;
}
{
package
Message;
has
bool
=> (
remote_name
=>
'Boolean'
,
isa
=>
'Bool'
,
is
=>
'ro'
,
serializer
=>
sub
{
my
(
$attr
,
$instance
) =
@_
;
return
$attr
->get_value(
$instance
) ?
'Y'
:
'N'
;
},
);
has
foo_bar
=> (
remote_name
=>
'FooBar'
,
isa
=>
'Str'
,
is
=>
'ro'
,
);
has
part
=> (
isa
=>
'MessagePart'
,
remote_name
=>
'MyMessagePart'
,
is
=>
'ro'
,
);
__PACKAGE__->meta->make_immutable;
}
my
$message
= Message->new({
bool
=> 0,
foo_bar
=>
'Baz'
,
part
=> MessagePart->new({
array
=> [
qw( 1 2 3 4 )
] }),
});
$message
->serialize;
# {
# Boolean => "N",
# FooBar => "Baz",
# MyMessagePart => { SomeColonDelimitedArray => "1:2:3:4" }
# }
DESCRIPTION
Recursively serialize to hashref based on the Composite Pattern. It's intended to allow easy passing of a plain old perl data structure to a serialization module like JSON or YAML.
METHODS
serialize
serialize to a perl hashref
BUGS
Please report any bugs or feature requests on the bugtracker website https://github.com/xenoterracide/moosex-remotehelper/issues
When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.
SEE ALSO
Please see those modules/websites for more information related to this module.
AUTHOR
Caleb Cushing <xenoterracide@gmail.com>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2013 by Caleb Cushing.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)