David Golden > Pantry-0.011 > Pantry::Role::Serializable

Download:
Pantry-0.011.tar.gz

Dependencies

Annotate this POD

Website

View/Report Bugs
Module Version: 0.011   Source   Latest Release: Pantry-0.012

NAME ^

Pantry::Role::Serializable - A role to save/load data to/from JSON files

VERSION ^

version 0.011

SYNOPSIS ^

  with 'Pantry::Role::Serializable' => {
    freezer => '_freeze',
    thawer => '_thaw',
  };

DESCRIPTION ^

This parameterizable Moose role provides methods for saving/loading Pantry objects as JSON.

METHODS ^

new_from_file

  my $obj = $class->new_from_file( $path );

Constructs a new object from JSON data found in the given file.

save_as

  $obj->save_as( $path );

Stores object data as JSON in a file at the given path location. Attributes with leading underscores are considered "private" and are omitted.

USAGE ^

Customizing the serialization behavior can be done with the optional freezer and thawer role parameters. If either freezer or thawer is omitted, data will not be modified during saving/loading (respectively), except that private attributes are always omitted when saving.

freezer

This role parameter takes the name of a method to use for modifying the object data during freezing. It takes a hashref of data representing the object's attributes (excluding any private attributes) and must return a hashref of data which will be serialized as JSON.

thawer

This role parameter takes the name of a method to use for modifying the object data during thawing. It takes a hashref of data deserialized from JSON and must return a hashref of data suitable for passing to the object constructor.

SEE ALSO ^

AUTHOR ^

David Golden <dagolden@cpan.org>

COPYRIGHT AND LICENSE ^

This software is Copyright (c) 2011 by David Golden.

This is free software, licensed under:

  The Apache License, Version 2.0, January 2004
syntax highlighting: