Fix another XSA corner case - how can something so simple get so complex...
[p5sagit/Class-Accessor-Grouped.git] / t / lib / AccessorGroups.pm
1 package AccessorGroups;
2 use strict;
3 use warnings;
4 use base 'Class::Accessor::Grouped';
5
6 __PACKAGE__->mk_group_accessors('simple', 'singlefield');
7 __PACKAGE__->mk_group_accessors('multiple', qw/multiple1 multiple2/);
8 __PACKAGE__->mk_group_accessors('listref', [qw/lr1name lr1;field/], [qw/lr2name lr2'field/]);
9
10 sub get_simple {
11   my $v = shift->SUPER::get_simple (@_);
12   $v =~ s/ Extra tackled on$// if $v;
13   $v;
14 }
15
16 sub set_simple {
17   my ($self, $f, $v) = @_;
18   $v .= ' Extra tackled on' if $f eq 'singlefield';
19   $self->SUPER::set_simple ($f, $v);
20   $_[2];
21 }
22
23 sub new {
24     return bless {}, shift;
25 };
26
27 foreach (qw/multiple listref/) {
28     no strict 'refs';
29     *{"get_$_"} = __PACKAGE__->can('get_simple');
30     *{"set_$_"} = __PACKAGE__->can('set_simple');
31 };
32
33 1;