X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Flib%2FAccessorGroups.pm;h=240b76dfca5774e923a3eaae2431b80f1671cbec;hb=c22782de08166e7c17d1c67902a27a39c5c23393;hp=97bf7f10ff8cf60f8ca6fa4cbf0c4a4baee69c17;hpb=e7d391a81cfb99725a120fb58b80534f73962c6d;p=p5sagit%2FClass-Accessor-Grouped.git diff --git a/t/lib/AccessorGroups.pm b/t/lib/AccessorGroups.pm index 97bf7f1..240b76d 100644 --- a/t/lib/AccessorGroups.pm +++ b/t/lib/AccessorGroups.pm @@ -3,22 +3,31 @@ use strict; use warnings; use base 'Class::Accessor::Grouped'; -__PACKAGE__->mk_group_accessors('single', 'singlefield'); +__PACKAGE__->mk_group_accessors('simple', 'singlefield'); __PACKAGE__->mk_group_accessors('multiple', qw/multiple1 multiple2/); -__PACKAGE__->mk_group_accessors('listref', [qw/lr1name lr1field/], [qw/lr2name lr2field/]); +__PACKAGE__->mk_group_accessors('listref', [qw/lr1name lr1;field/], [qw/lr2name lr2'field/]); + +sub get_simple { + my $v = shift->SUPER::get_simple (@_); + $v =~ s/ Extra tackled on$// if $v; + $v; +} + +sub set_simple { + my ($self, $f, $v) = @_; + $v .= ' Extra tackled on' if $f eq 'singlefield'; + $self->SUPER::set_simple ($f, $v); + $_[2]; +} sub new { return bless {}, shift; }; -foreach (qw/single multiple listref/) { +foreach (qw/multiple listref/) { no strict 'refs'; - - *{"get_$_"} = \&Class::Accessor::Grouped::get_simple; - *{"set_$_"} = \&Class::Accessor::Grouped::set_simple; + *{"get_$_"} = __PACKAGE__->can('get_simple'); + *{"set_$_"} = __PACKAGE__->can('set_simple'); }; -# make cleanup DESTROY happy -sub get_warnings {}; - 1;