sshaw > MooseX-NestedAttributesConstructor-0.01 > MooseX::NestedAttributesConstructor

Download:
MooseX-NestedAttributesConstructor-0.01.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.01   Source  

NAME ^

MooseX::NestedAttributesConstructor - Create attributes from a nested data structure

OVERVIEW ^

  package Address
  use Moose;

  has street => ( is => 'rw' );
  has city   => ( is => 'rw' );
  # ...

  package Person;
  use Moose;
  use MooseX::NestedAttributesConstructor

  has name      => ( is => 'rw' );
  has addresses => ( is     => 'rw',
                     isa    => 'ArrayRef[Address]',
                     traits => ['NestedAttribute'] );
  # ...

  package main;
  use Person;

  my $p = Person->new(name      => 'sshaw',
                      addresses => [
                        { city => 'LA' },
                        { city => 'Da Bay' },
                        { city => 'Even São José' }
                      ]);

  say $_->city for @{$p->addresses};

DESCRIPTION ^

This module sets attributes from a nested data structure passed your object's constructor. The appropriate types will be created, just add the NestedAttrubute trait to attributes with a custom or parameterized type.

Nested attributes are turned into objects after BUILDARGS is called.

AUTHOR ^

Skye Shaw (sshaw AT lucas.cis.temple.edu)

SEE ALSO ^

MooseX::StrictConstructor

COPYRIGHT ^

Copyright (c) 2012 Skye Shaw.

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

syntax highlighting: