From 120cfbbb0a4e7115670c90e35688d94b8597ab6e Mon Sep 17 00:00:00 2001 From: Gianni Ceccarelli Date: Wed, 9 Nov 2011 16:34:42 +0000 Subject: split! tags, ranges, both, now separate classes --- Data-MultiValued/lib/Data/MultiValued.pm | 54 ---------------------- Data-MultiValued/lib/Data/MultiValued/Ranges.pm | 50 ++++++++++++++++++++ Data-MultiValued/lib/Data/MultiValued/Tags.pm | 49 ++++++++++++++++++++ .../lib/Data/MultiValued/TagsAndRanges.pm | 54 ++++++++++++++++++++++ 4 files changed, 153 insertions(+), 54 deletions(-) delete mode 100644 Data-MultiValued/lib/Data/MultiValued.pm create mode 100644 Data-MultiValued/lib/Data/MultiValued/Ranges.pm create mode 100644 Data-MultiValued/lib/Data/MultiValued/Tags.pm create mode 100644 Data-MultiValued/lib/Data/MultiValued/TagsAndRanges.pm (limited to 'Data-MultiValued/lib') diff --git a/Data-MultiValued/lib/Data/MultiValued.pm b/Data-MultiValued/lib/Data/MultiValued.pm deleted file mode 100644 index 65b041d..0000000 --- a/Data-MultiValued/lib/Data/MultiValued.pm +++ /dev/null @@ -1,54 +0,0 @@ -package Data::MultiValued; -use Moose; -use MooseX::Params::Validate; -use Moose::Util::TypeConstraints; -use MooseX::Types::Moose qw(Num Str Undef Any); -use Data::MultiValued::Exceptions; -use Data::MultiValued::TagContainerForRanges; - -# ABSTRACT: Handle values with tags and validity ranges - -has _storage => ( - is => 'rw', - isa => class_type('Data::MultiValued::TagContainerForRanges'), - init_arg => undef, - lazy_build => 1, -); - -sub _build__storage { - Data::MultiValued::TagContainerForRanges->new(); -} - -sub set { - my ($self,%args) = validated_hash( - \@_, - from => { isa => Num|Undef, optional => 1, }, - to => { isa => Num|Undef, optional => 1, }, - tag => { isa => Str, optional => 1, }, - value => { isa => Any, }, - ); - - $self->_storage->get_or_create(\%args) - ->set_or_create(\%args) - ->{value} = $args{value}; -} - -sub get { - my ($self,%args) = validated_hash( - \@_, - at => { isa => Num|Undef, optional => 1, }, - tag => { isa => Str, optional => 1, }, - ); - - $self->_storage->get(\%args) - ->get(\%args) - ->{value}; -} - -sub clear { - my ($self) = @_; - - $self->_clear_storage; -} - -1; diff --git a/Data-MultiValued/lib/Data/MultiValued/Ranges.pm b/Data-MultiValued/lib/Data/MultiValued/Ranges.pm new file mode 100644 index 0000000..b2acdd4 --- /dev/null +++ b/Data-MultiValued/lib/Data/MultiValued/Ranges.pm @@ -0,0 +1,50 @@ +package Data::MultiValued::Ranges; +use Moose; +use MooseX::Params::Validate; +use Moose::Util::TypeConstraints; +use MooseX::Types::Moose qw(Num Str Undef Any); +use Data::MultiValued::Exceptions; +use Data::MultiValued::RangeContainer; + +# ABSTRACT: Handle values with tags and validity ranges + +has _storage => ( + is => 'rw', + isa => class_type('Data::MultiValued::RangeContainer'), + init_arg => undef, + lazy_build => 1, +); + +sub _build__storage { + Data::MultiValued::RangeContainer->new(); +} + +sub set { + my ($self,%args) = validated_hash( + \@_, + from => { isa => Num|Undef, optional => 1, }, + to => { isa => Num|Undef, optional => 1, }, + value => { isa => Any, }, + ); + + $self->_storage->set_or_create(\%args) + ->{value} = $args{value}; +} + +sub get { + my ($self,%args) = validated_hash( + \@_, + at => { isa => Num|Undef, optional => 1, }, + ); + + $self->_storage->get(\%args) + ->{value}; +} + +sub clear { + my ($self) = @_; + + $self->_clear_storage; +} + +1; diff --git a/Data-MultiValued/lib/Data/MultiValued/Tags.pm b/Data-MultiValued/lib/Data/MultiValued/Tags.pm new file mode 100644 index 0000000..0325f61 --- /dev/null +++ b/Data-MultiValued/lib/Data/MultiValued/Tags.pm @@ -0,0 +1,49 @@ +package Data::MultiValued::Tags; +use Moose; +use MooseX::Params::Validate; +use Moose::Util::TypeConstraints; +use MooseX::Types::Moose qw(Num Str Undef Any); +use Data::MultiValued::Exceptions; +use Data::MultiValued::TagContainer; + +# ABSTRACT: Handle values with tags and validity ranges + +has _storage => ( + is => 'rw', + isa => class_type('Data::MultiValued::TagContainer'), + init_arg => undef, + lazy_build => 1, +); + +sub _build__storage { + Data::MultiValued::TagContainer->new(); +} + +sub set { + my ($self,%args) = validated_hash( + \@_, + tag => { isa => Str, optional => 1, }, + value => { isa => Any, }, + ); + + $self->_storage->get_or_create(\%args) + ->{value} = $args{value}; +} + +sub get { + my ($self,%args) = validated_hash( + \@_, + tag => { isa => Str, optional => 1, }, + ); + + $self->_storage->get(\%args) + ->{value}; +} + +sub clear { + my ($self) = @_; + + $self->_clear_storage; +} + +1; diff --git a/Data-MultiValued/lib/Data/MultiValued/TagsAndRanges.pm b/Data-MultiValued/lib/Data/MultiValued/TagsAndRanges.pm new file mode 100644 index 0000000..e940449 --- /dev/null +++ b/Data-MultiValued/lib/Data/MultiValued/TagsAndRanges.pm @@ -0,0 +1,54 @@ +package Data::MultiValued::TagsAndRanges; +use Moose; +use MooseX::Params::Validate; +use Moose::Util::TypeConstraints; +use MooseX::Types::Moose qw(Num Str Undef Any); +use Data::MultiValued::Exceptions; +use Data::MultiValued::TagContainerForRanges; + +# ABSTRACT: Handle values with tags and validity ranges + +has _storage => ( + is => 'rw', + isa => class_type('Data::MultiValued::TagContainerForRanges'), + init_arg => undef, + lazy_build => 1, +); + +sub _build__storage { + Data::MultiValued::TagContainerForRanges->new(); +} + +sub set { + my ($self,%args) = validated_hash( + \@_, + from => { isa => Num|Undef, optional => 1, }, + to => { isa => Num|Undef, optional => 1, }, + tag => { isa => Str, optional => 1, }, + value => { isa => Any, }, + ); + + $self->_storage->get_or_create(\%args) + ->set_or_create(\%args) + ->{value} = $args{value}; +} + +sub get { + my ($self,%args) = validated_hash( + \@_, + at => { isa => Num|Undef, optional => 1, }, + tag => { isa => Str, optional => 1, }, + ); + + $self->_storage->get(\%args) + ->get(\%args) + ->{value}; +} + +sub clear { + my ($self) = @_; + + $self->_clear_storage; +} + +1; -- cgit v1.2.3