diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Data/MultiValued/AttributeTrait.pm | 110 |
1 files changed, 55 insertions, 55 deletions
diff --git a/lib/Data/MultiValued/AttributeTrait.pm b/lib/Data/MultiValued/AttributeTrait.pm index ba5559b..5841177 100644 --- a/lib/Data/MultiValued/AttributeTrait.pm +++ b/lib/Data/MultiValued/AttributeTrait.pm @@ -300,6 +300,49 @@ This role (together with L<Data::MultiValued::AttributeAccessors>) defines all the basic plumbing to glue C<Data::MultiValued::Tags> etc into Moose attributes. +=head1 ATTRIBUTES + +These are the attributes that this trait adds to the attribute in +your class. Example: + + has stuff => ( + is => 'rw', + isa => 'Int', + traits => ['MultiValued::Tags'], + predicate => 'has_stuff', + multi_accessor => 'stuff_tagged', + multi_predicate => 'has_stuff_tagged', + ); + +=head2 C<full_storage_slot> + +The instance slot to use to store the C<Data::MultiValued::Tags> or +similar object. Defaults to C<"${name}__MULTIVALUED_STORAGE__">, where +C<$name> is the attribute name. + +=head2 C<multi_accessor> + +=head2 C<multi_reader> + +=head2 C<multi_writer> + +=head2 C<multi_predicate> + +=head2 C<multi_clearer> + +The names to use for the various additional accessors. See +L<Class::MOP::Attribute> for details. These default to +C<"${name}_multi"> where C<$name> is the name of the corresponding +non-multi accessor. So, for example, + + has stuff => ( + is => 'rw', + traits => ['MultiValued::Tags'], + ); + +will create a C<stuff> read / write accessor and a C<stuff_multi> read +/ write tagged accessor. + =head1 METHODS =head2 C<slots> @@ -402,61 +445,6 @@ Call the C<clear> method on the multi-value object. Return the name of the reader or writer method, honoring L</multi_reader>, L</multi_writer> and L</multi_accessor>. -=head2 C<_rebless_slot> - -Blesses the value inside the L</full_storage_slot> of the instance -into L</multivalue_storage_class>, then calls C<_rebless_storage> on -it. - -=head2 C<_as_hash> - -Returns the result of calling C<_as_hash> on the value inside the -L</full_storage_slot> of the instance. Returns nothing if the slot -does not have a value. - -=head1 ATTRIBUTES - -These are the attributes that this trait adds to the attribute in -your class. Example: - - has stuff => ( - is => 'rw', - isa => 'Int', - traits => ['MultiValued::Tags'], - predicate => 'has_stuff', - multi_accessor => 'stuff_tagged', - multi_predicate => 'has_stuff_tagged', - ); - -=head2 C<full_storage_slot> - -The instance slot to use to store the C<Data::MultiValued::Tags> or -similar object. Defaults to C<"${name}__MULTIVALUED_STORAGE__">, where -C<$name> is the attribute name. - -=head2 C<multi_accessor> - -=head2 C<multi_reader> - -=head2 C<multi_writer> - -=head2 C<multi_predicate> - -=head2 C<multi_clearer> - -The names to use for the various additional accessors. See -L<Class::MOP::Attribute> for details. These default to -C<"${name}_multi"> where C<$name> is the name of the corresponding -non-multi accessor. So, for example, - - has stuff => ( - is => 'rw', - traits => ['MultiValued::Tags'], - ); - -will create a C<stuff> read / write accessor and a C<stuff_multi> read -/ write tagged accessor. - =head1 Implementation details The multi-value object is stored in the instance slot named by the @@ -489,6 +477,18 @@ method of the multi-value object. These are used through L<Data::MultiValued::UglySerializationHelperRole>. +=head2 C<_rebless_slot> + +Blesses the value inside the L</full_storage_slot> of the instance +into L</multivalue_storage_class>, then calls C<_rebless_storage> on +it. + +=head2 C<_as_hash> + +Returns the result of calling C<_as_hash> on the value inside the +L</full_storage_slot> of the instance. Returns nothing if the slot +does not have a value. + =head1 AUTHOR Gianni Ceccarelli <dakkar@thenautilus.net> |