diff options
Diffstat (limited to 't/lib/Test/SubExporter/ObjGen.pm')
-rw-r--r-- | t/lib/Test/SubExporter/ObjGen.pm | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/t/lib/Test/SubExporter/ObjGen.pm b/t/lib/Test/SubExporter/ObjGen.pm new file mode 100644 index 0000000..845d4b4 --- /dev/null +++ b/t/lib/Test/SubExporter/ObjGen.pm @@ -0,0 +1,54 @@ +#!perl +package Test::SubExporter::ObjGen::Obj; + +use strict; +use warnings; + +sub new { + my $class = shift; + my $code = $class->can(shift); + + bless { code => $code } => $class; +} + +sub group { + return { + foo => sub { return 'FOO' }, + bar => sub { return 'BAR' }, + }; +} + +sub baz { + return sub { + return 'BAZ'; + }; +} + +use overload + '&{}' => sub { $_[0]->{code} }, + 'bool' => sub { 1 }; + +package Test::SubExporter::ObjGen; + +my ($group_o, $group_b, $baz, $quux); +BEGIN { + $quux = sub { sub { 'QUUX' } }; + bless $quux => 'Test::SubExporter::Whatever'; + + $group_o = sub { return { + ringo => sub { 'starr' }, + richard => sub { 'starkey' }, + } }; + bless $group_o => 'Test::SubExporter::Whatever'; + + $baz = Test::SubExporter::ObjGen::Obj->new('baz'); + $group_b = Test::SubExporter::ObjGen::Obj->new('group'); +} + +use Sub::Exporter -setup => { + exports => { baz => $baz, quux => $quux }, + groups => { meta => $group_b, ringo => $group_o }, +}; + + +"call me"; |