Fix ton of buggery with defer-immutable accessor shim
[p5sagit/Class-Accessor-Grouped.git] / t / lib / AccessorGroupsParent.pm
1 BEGIN {
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   my $dummy = bless {};
12   # tickle stuff at BEGIN time
13   $dummy->singlefield('foo');
14 }
15
16
17 package AccessorGroupsParent;
18 use strict;
19 use warnings;
20 use base 'Class::Accessor::Grouped';
21 __PACKAGE__->mk_group_accessors('simple', 'singlefield');
22 __PACKAGE__->mk_group_accessors('multiple', qw/multiple1 multiple2/);
23 __PACKAGE__->mk_group_accessors('listref', [qw/lr1name lr1;field/], [qw/lr2name lr2'field/]);
24 __PACKAGE__->mk_group_accessors('simple', 'runtime_around');
25 __PACKAGE__->mk_group_accessors('simple', [ fieldname_torture => join ('', map { chr($_) } (0..255) ) ]);
26
27 sub new {
28   return bless {}, shift;
29 };
30
31 foreach (qw/multiple listref/) {
32   no strict 'refs';
33   *{"get_$_"} = __PACKAGE__->can('get_simple');
34   *{"set_$_"} = __PACKAGE__->can('set_simple');
35 };
36
37 1;