Provided by: libmongodbx-class-perl_1.02-3_all bug

NAME

       MongoDBx::Class::ParsedAttribute - A Moose role for automatically expanded and collapsed
       document attributes.

VERSION

       version 1.02

SYNOPSIS

               # in MyApp/ParsedAttribute/URI.pm
               package MyApp::ParsedAttribute::URI;

               use Moose;
               use namespace::autoclean;
               use URI;

               with 'MongoDBx::Class::ParsedAttribute';

               sub expand {
                       my ($self, $uri_text) = @_;

                       return URI->new($uri_text);
               }

               sub collapse {
                       my ($self, $uri_obj) = @_;

                       return $uri_obj->as_string;
               }

               1;

               # in MyApp/Schema/SomeDocumentClass.pm
               has 'url' => (is => 'ro', isa => 'URI', traits => ['Parsed'], parser => 'MyApp::ParsedAttribute::URI', required => 1);

DESCRIPTION

       This module is a Moose role meant to be consumed by classes that automatically expand
       (from a MongoDB database) and collapse (to a MongoDB database) attributes of a certain
       type. This is similar to DBIx::Class' InflateColumn family of modules that do pretty much
       the same thing for the SQL world.

       A class implementing this role with a name such as 'URI' (full package name
       MongoDBx::Class::ParsedAttribute::URI or MyApp::ParsedAttribute::URI) is expected to
       expand and collapse URI objects. Similarly, a class named 'NetAddr::IP' is expected to
       handle NetAddr::IP objects.

       Currently, a DateTime parser is provided with the MongoDBx::Class distribution.

REQUIRES

       Consuming classes must implement the following methods:

   expand( $value )
       Receives a raw attribute's value from a MongoDB document and returns the appropriate
       object representing it. For example, supposing the value is an epoch integer, the expand
       method might return a DateTime object.

   collapse( $object )
       Receives an object representing a parsed attribute, and returns that objects value in a
       form that can be saved in the database. For example, if the object is a DateTime object,
       this method might return the date's epoch integer.

AUTHOR

       Ido Perlmuter, "<ido at ido50.net>"

BUGS

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

SUPPORT

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

               perldoc MongoDBx::Class::ParsedAttribute

       You can also look for information at:

       •   RT: CPAN's request tracker

           <http://rt.cpan.org/NoAuth/Bugs.html?Dist=MongoDBx::Class>

       •   AnnoCPAN: Annotated CPAN documentation

           <http://annocpan.org/dist/MongoDBx::Class>

       •   CPAN Ratings

           <http://cpanratings.perl.org/d/MongoDBx::Class>

       •   Search CPAN

           <http://search.cpan.org/dist/MongoDBx::Class/>

SEE ALSO

       MongoDBx::Class::EmbeddedDocument.

LICENSE AND COPYRIGHT

       Copyright 2010-2012 Ido Perlmuter.

       This program is free software; you can redistribute it and/or modify it under the terms of
       either: the GNU General Public License as published by the Free Software Foundation; or
       the Artistic License.

       See http://dev.perl.org/licenses/ for more information.