diff options
Diffstat (limited to 'lib/Data/MultiValued/#Tags.pm#')
-rw-r--r-- | lib/Data/MultiValued/#Tags.pm# | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/lib/Data/MultiValued/#Tags.pm# b/lib/Data/MultiValued/#Tags.pm# deleted file mode 100644 index 29cf102..0000000 --- a/lib/Data/MultiValued/#Tags.pm# +++ /dev/null @@ -1,121 +0,0 @@ -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 - -=head1 SYNOPSIS - - use Data::MultiValued::Tags; - - my $obj = Data::MultiValued::Tags->new(); - $obj->set({ - tag => 'tag1', - value => 'a string', - }); - say $obj->get({tag=>'tag1'}); # prints 'a string' - say $obj->get({tag=>'tag2'}); # dies - -=head1 METHODS - -=cut - -has _storage => ( - is => 'rw', - isa => class_type('Data::MultiValued::TagContainer'), - init_arg => undef, - lazy_build => 1, -); - -sub _build__storage { - Data::MultiValued::TagContainer->new(); -} - -sub _rebless_storage { - my ($self) = @_; - - bless $self->{_storage},'Data::MultiValued::TagContainer'; -} - -sub _as_hash { - my ($self) = @_; - - my %ret = %{$self->_storage}; - return {_storage=>\%ret}; -} - -=head2 C<set> - - $obj->set({ tag => $the_tag, value => $the_value }); - -Stores the given value for the given tag. Replaces existing -values. Does not throw exceptions. - -No cloning is done: if you pass in a reference, the reference is -just stored. - -=cut - -sub set { - my ($self,%args) = validated_hash( - \@_, - tag => { isa => Str, optional => 1, }, - value => { isa => Any, }, - ); - - $self->_storage->get_or_create(\%args) - ->{value} = $args{value}; -} - -=head2 C<get> - - my $value = $obj->get({ tag => $the_tag }); - -Retrieves the value for the given tag. Throws a -L<Data::MultiValued::Exceptions::TagNotFound> exception if the tag -does not exists in this object. - -No cloning is done: if a reference was stored, you get it back -untouched. - -=cut - -sub get { - my ($self,%args) = validated_hash( - \@_, - tag => { isa => Str, optional => 1, }, - ); - - $self->_storage->get(\%args) - ->{value}; -} - -=head2 C<clear> - - $obj->clear({ tag => $the_tag }); - -Deletes the given tag and all data associated with it. Does not throw -exceptions: if the tag does not exist, nothing happens. - -=cut - -sub clear { - my ($self,%args) = validated_hash( - \@_, - tag => { isa => Str, optional => 1, }, - ); - - $self->_storage->clear(\%args); -} - -=head1 SEE ALSO - -L<Data::MultiValued::TagContainer>, L<Data::MultiValued::Exceptions> - -=cut - -1; |