From 2e533b50a3c2209228f0da962f979ad9abb4cbf2 Mon Sep 17 00:00:00 2001 From: Gianni Ceccarelli Date: Thu, 10 Nov 2011 10:49:09 +0000 Subject: utility meta-accessors --- .../lib/Data/MultiValued/AttributeTrait/Tagged.pm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Data-MultiValued/lib/Data/MultiValued/AttributeTrait/Tagged.pm b/Data-MultiValued/lib/Data/MultiValued/AttributeTrait/Tagged.pm index a1f33fc..7839e2d 100644 --- a/Data-MultiValued/lib/Data/MultiValued/AttributeTrait/Tagged.pm +++ b/Data-MultiValued/lib/Data/MultiValued/AttributeTrait/Tagged.pm @@ -61,6 +61,10 @@ after install_accessors => sub { my $type = "tagged_$meth"; my $basename = $self->$meth; + + die 'MultiValued attribute trait is not compatible with subref accessors' + if ref($basename); + my $name = "${basename}_tagged"; $class->add_method( @@ -173,6 +177,16 @@ sub clear_tagged_value { return $self->clear_value($instance); } +sub get_tagged_read_method { + my $self = shift; + return $self->get_read_method . '_tagged'; +} + +sub get_tagged_write_method { + my $self = shift; + return $self->get_write_method . '_tagged'; +} + package Moose::Meta::Attribute::Custom::Trait::MultiValued::Tagged;{ sub register_implementation { 'Data::MultiValued::AttributeTrait::Tagged' } } -- cgit v1.2.3