diff options
Diffstat (limited to 'lib/Data')
-rw-r--r-- | lib/Data/MultiValued.pm | 4 | ||||
-rw-r--r-- | lib/Data/MultiValued/AttributeAccessors.pm | 4 | ||||
-rw-r--r-- | lib/Data/MultiValued/AttributeTrait.pm | 4 | ||||
-rw-r--r-- | lib/Data/MultiValued/AttributeTrait/Ranges.pm | 6 | ||||
-rw-r--r-- | lib/Data/MultiValued/AttributeTrait/Tags.pm | 6 | ||||
-rw-r--r-- | lib/Data/MultiValued/AttributeTrait/TagsAndRanges.pm | 6 | ||||
-rw-r--r-- | lib/Data/MultiValued/Exceptions.pm | 12 | ||||
-rw-r--r-- | lib/Data/MultiValued/RangeContainer.pm | 4 | ||||
-rw-r--r-- | lib/Data/MultiValued/Ranges.pm | 4 | ||||
-rw-r--r-- | lib/Data/MultiValued/TagContainer.pm | 4 | ||||
-rw-r--r-- | lib/Data/MultiValued/TagContainerForRanges.pm | 4 | ||||
-rw-r--r-- | lib/Data/MultiValued/Tags.pm | 4 | ||||
-rw-r--r-- | lib/Data/MultiValued/TagsAndRanges.pm | 4 | ||||
-rw-r--r-- | lib/Data/MultiValued/UglySerializationHelperRole.pm | 62 |
14 files changed, 80 insertions, 48 deletions
diff --git a/lib/Data/MultiValued.pm b/lib/Data/MultiValued.pm index e7a0e3c..3f2e964 100644 --- a/lib/Data/MultiValued.pm +++ b/lib/Data/MultiValued.pm @@ -1,6 +1,6 @@ package Data::MultiValued; { - $Data::MultiValued::VERSION = '0.0.3'; + $Data::MultiValued::VERSION = '0.0.1_5'; } { $Data::MultiValued::DIST = 'Data-MultiValued'; @@ -25,7 +25,7 @@ Data::MultiValued - store tag- and range-dependant data in a scalar or Moose att =head1 VERSION -version 0.0.3 +version 0.0.1_5 =head1 SYNOPSIS diff --git a/lib/Data/MultiValued/AttributeAccessors.pm b/lib/Data/MultiValued/AttributeAccessors.pm index 78ba975..470dfda 100644 --- a/lib/Data/MultiValued/AttributeAccessors.pm +++ b/lib/Data/MultiValued/AttributeAccessors.pm @@ -1,6 +1,6 @@ package Data::MultiValued::AttributeAccessors; { - $Data::MultiValued::AttributeAccessors::VERSION = '0.0.3'; + $Data::MultiValued::AttributeAccessors::VERSION = '0.0.1_5'; } { $Data::MultiValued::AttributeAccessors::DIST = 'Data-MultiValued'; @@ -130,7 +130,7 @@ Data::MultiValued::AttributeAccessors - method meta-class for multi-valued attri =head1 VERSION -version 0.0.3 +version 0.0.1_5 =head1 DESCRIPTION diff --git a/lib/Data/MultiValued/AttributeTrait.pm b/lib/Data/MultiValued/AttributeTrait.pm index 1e90c94..24c6e03 100644 --- a/lib/Data/MultiValued/AttributeTrait.pm +++ b/lib/Data/MultiValued/AttributeTrait.pm @@ -1,6 +1,6 @@ package Data::MultiValued::AttributeTrait; { - $Data::MultiValued::AttributeTrait::VERSION = '0.0.3'; + $Data::MultiValued::AttributeTrait::VERSION = '0.0.1_5'; } { $Data::MultiValued::AttributeTrait::DIST = 'Data-MultiValued'; @@ -287,7 +287,7 @@ Data::MultiValued::AttributeTrait - "base role" for traits of multi-valued Moose =head1 VERSION -version 0.0.3 +version 0.0.1_5 =head1 DESCRIPTION diff --git a/lib/Data/MultiValued/AttributeTrait/Ranges.pm b/lib/Data/MultiValued/AttributeTrait/Ranges.pm index a221a20..654a78f 100644 --- a/lib/Data/MultiValued/AttributeTrait/Ranges.pm +++ b/lib/Data/MultiValued/AttributeTrait/Ranges.pm @@ -1,6 +1,6 @@ package Data::MultiValued::AttributeTrait::Ranges; { - $Data::MultiValued::AttributeTrait::Ranges::VERSION = '0.0.3'; + $Data::MultiValued::AttributeTrait::Ranges::VERSION = '0.0.1_5'; } { $Data::MultiValued::AttributeTrait::Ranges::DIST = 'Data-MultiValued'; @@ -19,7 +19,7 @@ sub opts_to_pass_get { qw(at) } package Moose::Meta::Attribute::Custom::Trait::MultiValued::Ranges; { - $Moose::Meta::Attribute::Custom::Trait::MultiValued::Ranges::VERSION = '0.0.3'; + $Moose::Meta::Attribute::Custom::Trait::MultiValued::Ranges::VERSION = '0.0.1_5'; } { $Moose::Meta::Attribute::Custom::Trait::MultiValued::Ranges::DIST = 'Data-MultiValued'; @@ -40,7 +40,7 @@ Data::MultiValued::AttributeTrait::Ranges - attribute traits for attributes hold =head1 VERSION -version 0.0.3 +version 0.0.1_5 =head1 SYNOPSIS diff --git a/lib/Data/MultiValued/AttributeTrait/Tags.pm b/lib/Data/MultiValued/AttributeTrait/Tags.pm index 63f10ac..63572c5 100644 --- a/lib/Data/MultiValued/AttributeTrait/Tags.pm +++ b/lib/Data/MultiValued/AttributeTrait/Tags.pm @@ -1,6 +1,6 @@ package Data::MultiValued::AttributeTrait::Tags; { - $Data::MultiValued::AttributeTrait::Tags::VERSION = '0.0.3'; + $Data::MultiValued::AttributeTrait::Tags::VERSION = '0.0.1_5'; } { $Data::MultiValued::AttributeTrait::Tags::DIST = 'Data-MultiValued'; @@ -19,7 +19,7 @@ sub opts_to_pass_get { qw(tag) } package Moose::Meta::Attribute::Custom::Trait::MultiValued::Tags; { - $Moose::Meta::Attribute::Custom::Trait::MultiValued::Tags::VERSION = '0.0.3'; + $Moose::Meta::Attribute::Custom::Trait::MultiValued::Tags::VERSION = '0.0.1_5'; } { $Moose::Meta::Attribute::Custom::Trait::MultiValued::Tags::DIST = 'Data-MultiValued'; @@ -40,7 +40,7 @@ Data::MultiValued::AttributeTrait::Tags - attribute traits for attributes holdin =head1 VERSION -version 0.0.3 +version 0.0.1_5 =head1 SYNOPSIS diff --git a/lib/Data/MultiValued/AttributeTrait/TagsAndRanges.pm b/lib/Data/MultiValued/AttributeTrait/TagsAndRanges.pm index 381c197..ab1643f 100644 --- a/lib/Data/MultiValued/AttributeTrait/TagsAndRanges.pm +++ b/lib/Data/MultiValued/AttributeTrait/TagsAndRanges.pm @@ -1,6 +1,6 @@ package Data::MultiValued::AttributeTrait::TagsAndRanges; { - $Data::MultiValued::AttributeTrait::TagsAndRanges::VERSION = '0.0.3'; + $Data::MultiValued::AttributeTrait::TagsAndRanges::VERSION = '0.0.1_5'; } { $Data::MultiValued::AttributeTrait::TagsAndRanges::DIST = 'Data-MultiValued'; @@ -19,7 +19,7 @@ sub opts_to_pass_get { qw(at tag) } package Moose::Meta::Attribute::Custom::Trait::MultiValued::TagsAndRanges; { - $Moose::Meta::Attribute::Custom::Trait::MultiValued::TagsAndRanges::VERSION = '0.0.3'; + $Moose::Meta::Attribute::Custom::Trait::MultiValued::TagsAndRanges::VERSION = '0.0.1_5'; } { $Moose::Meta::Attribute::Custom::Trait::MultiValued::TagsAndRanges::DIST = 'Data-MultiValued'; @@ -40,7 +40,7 @@ Data::MultiValued::AttributeTrait::TagsAndRanges - attribute traits for attribut =head1 VERSION -version 0.0.3 +version 0.0.1_5 =head1 SYNOPSIS diff --git a/lib/Data/MultiValued/Exceptions.pm b/lib/Data/MultiValued/Exceptions.pm index 311b1f8..84de506 100644 --- a/lib/Data/MultiValued/Exceptions.pm +++ b/lib/Data/MultiValued/Exceptions.pm @@ -1,6 +1,6 @@ package Data::MultiValued::Exceptions; { - $Data::MultiValued::Exceptions::VERSION = '0.0.3'; + $Data::MultiValued::Exceptions::VERSION = '0.0.1_5'; } { $Data::MultiValued::Exceptions::DIST = 'Data-MultiValued'; @@ -11,7 +11,7 @@ package Data::MultiValued::Exceptions; package Data::MultiValued::Exceptions::NotFound; { - $Data::MultiValued::Exceptions::NotFound::VERSION = '0.0.3'; + $Data::MultiValued::Exceptions::NotFound::VERSION = '0.0.1_5'; } { $Data::MultiValued::Exceptions::NotFound::DIST = 'Data-MultiValued'; @@ -44,7 +44,7 @@ sub as_string { package Data::MultiValued::Exceptions::TagNotFound; { - $Data::MultiValued::Exceptions::TagNotFound::VERSION = '0.0.3'; + $Data::MultiValued::Exceptions::TagNotFound::VERSION = '0.0.1_5'; } { $Data::MultiValued::Exceptions::TagNotFound::DIST = 'Data-MultiValued'; @@ -60,7 +60,7 @@ has '+message' => ( package Data::MultiValued::Exceptions::RangeNotFound; { - $Data::MultiValued::Exceptions::RangeNotFound::VERSION = '0.0.3'; + $Data::MultiValued::Exceptions::RangeNotFound::VERSION = '0.0.1_5'; } { $Data::MultiValued::Exceptions::RangeNotFound::DIST = 'Data-MultiValued'; @@ -76,7 +76,7 @@ has '+message' => ( package Data::MultiValued::Exceptions::BadRange; { - $Data::MultiValued::Exceptions::BadRange::VERSION = '0.0.3'; + $Data::MultiValued::Exceptions::BadRange::VERSION = '0.0.1_5'; } { $Data::MultiValued::Exceptions::BadRange::DIST = 'Data-MultiValued'; @@ -112,7 +112,7 @@ Data::MultiValued::Exceptions - exception classes =head1 VERSION -version 0.0.3 +version 0.0.1_5 =head1 DESCRIPTION diff --git a/lib/Data/MultiValued/RangeContainer.pm b/lib/Data/MultiValued/RangeContainer.pm index 293c58b..6ee0e47 100644 --- a/lib/Data/MultiValued/RangeContainer.pm +++ b/lib/Data/MultiValued/RangeContainer.pm @@ -1,6 +1,6 @@ package Data::MultiValued::RangeContainer; { - $Data::MultiValued::RangeContainer::VERSION = '0.0.3'; + $Data::MultiValued::RangeContainer::VERSION = '0.0.1_5'; } { $Data::MultiValued::RangeContainer::DIST = 'Data-MultiValued'; @@ -248,7 +248,7 @@ Data::MultiValued::RangeContainer - container for ranged values =head1 VERSION -version 0.0.3 +version 0.0.1_5 =head1 DESCRIPTION diff --git a/lib/Data/MultiValued/Ranges.pm b/lib/Data/MultiValued/Ranges.pm index 1168960..9beb1a8 100644 --- a/lib/Data/MultiValued/Ranges.pm +++ b/lib/Data/MultiValued/Ranges.pm @@ -1,6 +1,6 @@ package Data::MultiValued::Ranges; { - $Data::MultiValued::Ranges::VERSION = '0.0.3'; + $Data::MultiValued::Ranges::VERSION = '0.0.1_5'; } { $Data::MultiValued::Ranges::DIST = 'Data-MultiValued'; @@ -93,7 +93,7 @@ Data::MultiValued::Ranges - Handle values with validity ranges =head1 VERSION -version 0.0.3 +version 0.0.1_5 =head1 SYNOPSIS diff --git a/lib/Data/MultiValued/TagContainer.pm b/lib/Data/MultiValued/TagContainer.pm index 39a3fb0..949440c 100644 --- a/lib/Data/MultiValued/TagContainer.pm +++ b/lib/Data/MultiValued/TagContainer.pm @@ -1,6 +1,6 @@ package Data::MultiValued::TagContainer; { - $Data::MultiValued::TagContainer::VERSION = '0.0.3'; + $Data::MultiValued::TagContainer::VERSION = '0.0.1_5'; } { $Data::MultiValued::TagContainer::DIST = 'Data-MultiValued'; @@ -126,7 +126,7 @@ Data::MultiValued::TagContainer - container for tagged values =head1 VERSION -version 0.0.3 +version 0.0.1_5 =head1 DESCRIPTION diff --git a/lib/Data/MultiValued/TagContainerForRanges.pm b/lib/Data/MultiValued/TagContainerForRanges.pm index ad50dff..5dc31ea 100644 --- a/lib/Data/MultiValued/TagContainerForRanges.pm +++ b/lib/Data/MultiValued/TagContainerForRanges.pm @@ -1,6 +1,6 @@ package Data::MultiValued::TagContainerForRanges; { - $Data::MultiValued::TagContainerForRanges::VERSION = '0.0.3'; + $Data::MultiValued::TagContainerForRanges::VERSION = '0.0.1_5'; } { $Data::MultiValued::TagContainerForRanges::DIST = 'Data-MultiValued'; @@ -68,7 +68,7 @@ Data::MultiValued::TagContainerForRanges - container for tagged values that are =head1 VERSION -version 0.0.3 +version 0.0.1_5 =head1 DESCRIPTION diff --git a/lib/Data/MultiValued/Tags.pm b/lib/Data/MultiValued/Tags.pm index 20ddd50..6d213d4 100644 --- a/lib/Data/MultiValued/Tags.pm +++ b/lib/Data/MultiValued/Tags.pm @@ -1,6 +1,6 @@ package Data::MultiValued::Tags; { - $Data::MultiValued::Tags::VERSION = '0.0.3'; + $Data::MultiValued::Tags::VERSION = '0.0.1_5'; } { $Data::MultiValued::Tags::DIST = 'Data-MultiValued'; @@ -90,7 +90,7 @@ Data::MultiValued::Tags - Handle values with tags =head1 VERSION -version 0.0.3 +version 0.0.1_5 =head1 SYNOPSIS diff --git a/lib/Data/MultiValued/TagsAndRanges.pm b/lib/Data/MultiValued/TagsAndRanges.pm index 6aa1fbb..e75f0f5 100644 --- a/lib/Data/MultiValued/TagsAndRanges.pm +++ b/lib/Data/MultiValued/TagsAndRanges.pm @@ -1,6 +1,6 @@ package Data::MultiValued::TagsAndRanges; { - $Data::MultiValued::TagsAndRanges::VERSION = '0.0.3'; + $Data::MultiValued::TagsAndRanges::VERSION = '0.0.1_5'; } { $Data::MultiValued::TagsAndRanges::DIST = 'Data-MultiValued'; @@ -103,7 +103,7 @@ Data::MultiValued::TagsAndRanges - Handle values with tags and validity ranges =head1 VERSION -version 0.0.3 +version 0.0.1_5 =head1 SYNOPSIS diff --git a/lib/Data/MultiValued/UglySerializationHelperRole.pm b/lib/Data/MultiValued/UglySerializationHelperRole.pm index 9913a7d..2ebe831 100644 --- a/lib/Data/MultiValued/UglySerializationHelperRole.pm +++ b/lib/Data/MultiValued/UglySerializationHelperRole.pm @@ -1,6 +1,6 @@ package Data::MultiValued::UglySerializationHelperRole; { - $Data::MultiValued::UglySerializationHelperRole::VERSION = '0.0.3'; + $Data::MultiValued::UglySerializationHelperRole::VERSION = '0.0.1_5'; } { $Data::MultiValued::UglySerializationHelperRole::DIST = 'Data-MultiValued'; @@ -16,10 +16,8 @@ sub new_in_place { my $self = bless $hash,$class; - for my $attr ($class->meta->get_all_attributes) { - if ($attr->does('Data::MultiValued::AttributeTrait')) { - $attr->_rebless_slot($self); - } + for my $attr (@{$class->_dmv_multi_attrs}) { + $attr->_rebless_slot($self); } return $self; } @@ -29,20 +27,54 @@ sub as_hash { my ($self) = @_; my %ret = %$self; - for my $attr ($self->meta->get_all_attributes) { - if ($attr->does('Data::MultiValued::AttributeTrait')) { - my $st = $attr->_as_hash($self); - if ($st) { - $ret{$attr->full_storage_slot} = $st; - } - else { - delete $ret{$attr->full_storage_slot}; - } + for my $attr (@{$self->_dmv_multi_attrs}) { + my $st = $attr->_as_hash($self); + if ($st) { + $ret{$attr->full_storage_slot} = $st; + } + else { + delete $ret{$attr->full_storage_slot}; } } return \%ret; } +{ +my ( + %all_attrs_for_class, + %tagged_attrs_for_class, + %ranged_attrs_for_class, + %multi_attrs_for_class, +); + +sub _dmv_all_attrs { + my ($class) = @_;$class=ref($class)||$class; + + return $all_attrs_for_class{$class} //= [$class->meta->get_all_attributes]; +} +sub _dmv_tagged_attrs { + my ($class) = @_;$class=ref($class)||$class; + + return $tagged_attrs_for_class{$class} //= + [ grep { $_->does('Data::MultiValued::AttributeTrait::Tags') } + @{$class->_dmv_all_attrs} ]; +} +sub _dmv_ranged_attrs { + my ($class) = @_;$class=ref($class)||$class; + + return $ranged_attrs_for_class{$class} //= + [ grep { $_->does('Data::MultiValued::AttributeTrait::Ranges') } + @{$class->_dmv_all_attrs} ]; +} +sub _dmv_multi_attrs { + my ($class) = @_;$class=ref($class)||$class; + + return $multi_attrs_for_class{$class} //= + [ grep { $_->does('Data::MultiValued::AttributeTrait') } + @{$class->_dmv_all_attrs} ]; +} +} + 1; @@ -57,7 +89,7 @@ Data::MultiValued::UglySerializationHelperRole - only use this if you know what =head1 VERSION -version 0.0.3 +version 0.0.1_5 =head1 SYNOPSIS |