NAME

App::Serializer::Yaml - Interface for serialization and deserialization

SYNOPSIS

use App;

$context = App->context();
$serializer = $context->service("Serializer");  # or ...
$serializer = $context->serializer();
$data = {
    an => 'arbitrary',
    collection => [ 'of', 'data', ],
    of => {
        arbitrary => 'depth',
    },
};
$yaml = $serializer->serialize($data);
$data = $serializer->deserialize($yaml);
print $serializer->dump($data), "\n";

DESCRIPTION

A Serializer allows you to serialize a structure of data of arbitrary depth to a scalar and deserialize it back to the structure.

The Yaml serializer uses YAML as the serialized form of the data. It uses the "YAML.pm" module from CPAN to perform the deserialization and serialization.

Class: App::Serializer::Yaml

* Throws: App::Exception::Serializer
* Since:  0.01

Design

The class is entirely made up of static (class) methods. However, they are each intended to be called as methods on the instance itself.

Constructor Methods:

new()

The constructor is inherited from App::Service.

Public Methods:

serialize()

* Signature: $yaml = $serializer->serialize(@data);
* Param:     @data             any
* Return:    $yaml             text
* Throws:    App::Exception::Serializer
* Since:     0.01

Sample Usage: 

$context = App->context();
$serializer = $context->service("Serializer");  # or ...
$serializer = $context->serializer();
$data = {
    an => 'arbitrary',
    collection => [ 'of', 'data', ],
    of => {
        arbitrary => 'depth',
    },
};
$yaml = $serializer->serialize($data);

deserialize()

* Signature: @data = $serializer->deserialize($yaml);
* Signature: @data = App::Serializer->deserialize($yaml);
* Param:     $yaml          text
* Return:    @data          any
* Throws:    App::Exception::Serializer
* Since:     0.01

Sample Usage: 

$context = App->context();
$serializer = $context->service("Serializer");  # or ...
$serializer = $context->serializer();
$data = $serializer->deserialize($yaml);
print $serializer->dump($data), "\n";

serialized_content_type()

* Signature: $serialized_content_type = $service->serialized_content_type();
* Param:     void
* Return:    $serialized_content_type   string
* Throws:    App::Exception
* Since:     0.01

Sample Usage: 

$serialized_content_type = $service->serialized_content_type();

dump()

This method is inherited from App::Serializer.

ACKNOWLEDGEMENTS

* Author:  Stephen Adkins <spadkins@gmail.com>
* License: This is free software. It is licensed under the same terms as Perl itself.

SEE ALSO

App::Context, App::Service