Major revamp of CAG internals - now works on pure-perl
[p5sagit/Class-Accessor-Grouped.git] / t / lib / AccessorGroups.pm
1 {
2   package AccessorGroups::BeenThereDoneThat;
3
4   use strict;
5   use warnings;
6   use base 'Class::Accessor::Grouped';
7
8   __PACKAGE__->mk_group_accessors('simple', 'singlefield');
9   __PACKAGE__->mk_group_accessors('multiple', qw/multiple1 multiple2/);
10 }
11
12
13 package AccessorGroups;
14 use strict;
15 use warnings;
16 use base 'Class::Accessor::Grouped';
17 __PACKAGE__->mk_group_accessors('simple', 'singlefield');
18 __PACKAGE__->mk_group_accessors('multiple', qw/multiple1 multiple2/);
19 __PACKAGE__->mk_group_accessors('listref', [qw/lr1name lr1;field/], [qw/lr2name lr2'field/]);
20
21 sub get_simple {
22   my $v = shift->SUPER::get_simple (@_);
23   $v =~ s/ Extra tackled on$// if $v;
24   $v;
25 }
26
27 sub set_simple {
28   my ($self, $f, $v) = @_;
29   $v .= ' Extra tackled on' if $f eq 'singlefield';
30   $self->SUPER::set_simple ($f, $v);
31   $_[2];
32 }
33
34 sub new {
35     return bless {}, shift;
36 };
37
38 foreach (qw/multiple listref/) {
39     no strict 'refs';
40     *{"get_$_"} = __PACKAGE__->can('get_simple');
41     *{"set_$_"} = __PACKAGE__->can('set_simple');
42 };
43
44 1;