Add an extra benchmark point - the inherited accessor type
[p5sagit/Class-Accessor-Grouped.git] / t / lib / AccessorGroups.pm
CommitLineData
85ccab9a 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
e7d391a8 13package AccessorGroups;
14use strict;
15use warnings;
16use base 'Class::Accessor::Grouped';
9540f4e4 17__PACKAGE__->mk_group_accessors('simple', 'singlefield');
28344104 18__PACKAGE__->mk_group_accessors('multiple', qw/multiple1 multiple2/);
19__PACKAGE__->mk_group_accessors('listref', [qw/lr1name lr1;field/], [qw/lr2name lr2'field/]);
e7d391a8 20
fee7c68b 21sub get_simple {
22 my $v = shift->SUPER::get_simple (@_);
23 $v =~ s/ Extra tackled on$// if $v;
24 $v;
25}
26
27sub 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
e7d391a8 34sub new {
35 return bless {}, shift;
36};
37
28344104 38foreach (qw/multiple listref/) {
39 no strict 'refs';
40 *{"get_$_"} = __PACKAGE__->can('get_simple');
41 *{"set_$_"} = __PACKAGE__->can('set_simple');
42};
43
e7d391a8 441;