use Test::Exception;
{
+
package ExGroups1;
use Moose::Exporter;
use Moose ();
with_meta => ['with_meta1'],
with_caller => ['default_export1'],
as_is => ['default_export2'],
- groups => { all_group => [':all'],
- just_one => ['default_export1'] }
+ groups => {
+ all_group => [':all'],
+ just_one => ['default_export1']
+ }
);
- sub default_export1 { 1 }
- sub default_export2 { 2 }
+ sub default_export1 {1}
+ sub default_export2 {2}
sub with_meta1 (&) {
- my ($meta, $code) = @_;
+ my ( $meta, $code ) = @_;
return $meta;
}
}
{
+
package UseAllGroup;
-
+
ExGroups1->import(':all_group');
::can_ok( __PACKAGE__, 'with_meta1' );
my $meta;
eval q/$meta = with_meta1 { return 'coderef'; }/;
- ::is($@, '', 'calling with_meta1 with prototype is not an error');
+ ::is( $@, '', 'calling with_meta1 with prototype is not an error' );
::isa_ok( $meta, 'Moose::Meta::Class', 'with_meta first argument' );
- ::is( prototype( __PACKAGE__->can('with_meta1') ),
- prototype( ExGroups1->can('with_meta1') ),
- 'using correct prototype on with_meta function' );
+ ::is(
+ prototype( __PACKAGE__->can('with_meta1') ),
+ prototype( ExGroups1->can('with_meta1') ),
+ 'using correct prototype on with_meta function'
+ );
ExGroups1->unimport();
- ::ok( ! __PACKAGE__->can('with_meta1'), __PACKAGE__.'::with_meta1() has been cleaned' );
- ::ok( ! __PACKAGE__->can('default_export1'), __PACKAGE__.'::default_export1() has been cleaned' );
- ::ok( ! __PACKAGE__->can('default_export2'), __PACKAGE__.'::default_export2() has been cleaned' );
- ::ok( ! __PACKAGE__->can('has'), __PACKAGE__.'::has() has been cleaned' );
+ ::ok( !__PACKAGE__->can('with_meta1'),
+ __PACKAGE__ . '::with_meta1() has been cleaned' );
+ ::ok( !__PACKAGE__->can('default_export1'),
+ __PACKAGE__ . '::default_export1() has been cleaned' );
+ ::ok( !__PACKAGE__->can('default_export2'),
+ __PACKAGE__ . '::default_export2() has been cleaned' );
+ ::ok( !__PACKAGE__->can('has'),
+ __PACKAGE__ . '::has() has been cleaned' );
}
{
+
package UseJustOne;
ExGroups1->import(':just_one');
::can_ok( __PACKAGE__, 'default_export1' );
- ::ok( ! __PACKAGE__->can('default_export2'), __PACKAGE__.'::default_export2() was not imported' );
- ::ok( ! __PACKAGE__->can('has'), __PACKAGE__.'::has() was not imported' );
+ ::ok( !__PACKAGE__->can('default_export2'),
+ __PACKAGE__ . '::default_export2() was not imported' );
+ ::ok( !__PACKAGE__->can('has'),
+ __PACKAGE__ . '::has() was not imported' );
ExGroups1->unimport();
- ::ok( ! __PACKAGE__->can('default_export1'), __PACKAGE__.'::default_export1() has been cleared' );
+ ::ok( !__PACKAGE__->can('default_export1'),
+ __PACKAGE__ . '::default_export1() has been cleared' );
}
{
+
package ExGroups2;
use Moose::Exporter;
-
+
Moose::Exporter->setup_import_methods(
also => ['ExGroups1'],
as_is => ['exgroups2_as_is'],
with_caller => ['exgroups2_with_caller'],
- groups => { default => ['exgroups2_as_is'],
- code_group => \&generate_group,
- parent1 => [qw(:ExGroups1 :code_group)],
- parent2 => [qw(:all)] }
+ groups => {
+ default => ['exgroups2_as_is'],
+ code_group => \&generate_group,
+ parent1 => [qw(:ExGroups1 :code_group)],
+ parent2 => [qw(:all)]
+ }
);
- sub exgroups2_as_is { 3 }
+ sub exgroups2_as_is {3}
sub generate_group {
- my ($caller, $group_name, $args, $context) = @_;
+ my ( $caller, $group_name, $args, $context ) = @_;
- ::is($group_name, 'code_group', 'original name is passed to group code');
- ::is($args->{install_as}, $caller . '_code', 'group code arguments match caller');
- ::is($context->{from}, __PACKAGE__, 'defined package name is passed to group code');
+ ::is( $group_name, 'code_group',
+ 'original name is passed to group code' );
+ ::is( $args->{install_as}, $caller . '_code',
+ 'group code arguments match caller' );
+ ::is( $context->{from}, __PACKAGE__,
+ 'defined package name is passed to group code' );
return { $args->{install_as} => \&exported_by_group };
}
sub exported_by_group (&) {
- my ($caller, $coderef) = @_;
+ my ( $caller, $coderef ) = @_;
return $caller;
}
}
{
+
package UseDefault;
-
+
ExGroups2->import;
::can_ok( __PACKAGE__, 'exgroups2_as_is' );
- ::ok( ! __PACKAGE__->can('exgroups2_with_caller'), '"default" group is no longer "all"' );
+ ::ok( !__PACKAGE__->can('exgroups2_with_caller'),
+ '"default" group is no longer "all"' );
}
{
+
package UseCodeGroup;
- ExGroups2->import(':code_group', { install_as => (my $export_name = __PACKAGE__.'_code') });
+ ExGroups2->import( ':code_group',
+ { install_as => ( my $export_name = __PACKAGE__ . '_code' ) } );
::can_ok( __PACKAGE__, $export_name );
- ::ok( &UseCodeGroup_code() eq __PACKAGE__, 'code group exports act like "with_caller" subs' );
- ::lives_ok(sub { UseCodeCodeGroup_code { return 'code block'; } }, 'code group exports keep their prototypes');
+ ::ok( &UseCodeGroup_code() eq __PACKAGE__,
+ 'code group exports act like "with_caller" subs' );
+ ::lives_ok(
+ sub {
+ UseCodeCodeGroup_code { return 'code block'; };
+ },
+ 'code group exports keep their prototypes'
+ );
- ::ok( ! __PACKAGE__->can('exgroups2_as_is'), 'code group will not automatically export any symbols' );
+ ::ok( !__PACKAGE__->can('exgroups2_as_is'),
+ 'code group will not automatically export any symbols' );
ExGroups2->unimport;
-
- ::ok( ! __PACKAGE__->can($export_name),
- 'dynamically-named '. __PACKAGE__."::$export_name() has been cleared" );
+
+ ::ok(
+ !__PACKAGE__->can($export_name),
+ 'dynamically-named '
+ . __PACKAGE__
+ . "::$export_name() has been cleared"
+ );
}
{
+
package UseParent1;
- ExGroups2->import(':parent1', { install_as => (my $export_name = __PACKAGE__.'_code') });
+ ExGroups2->import( ':parent1',
+ { install_as => ( my $export_name = __PACKAGE__ . '_code' ) } );
::can_ok( __PACKAGE__, $export_name );
::can_ok( __PACKAGE__, 'default_export1' );
ExGroups2->unimport;
- ::ok( ! __PACKAGE__->can($export_name), __PACKAGE__."::$export_name() has been cleared" );
- ::ok( ! __PACKAGE__->can('default_export1'), __PACKAGE__.'::default_export1() has been cleaned' );
- ::ok( ! __PACKAGE__->can('default_export2'), __PACKAGE__.'::default_export2() has been cleaned' );
- ::ok( ! __PACKAGE__->can('has'), __PACKAGE__.'::has() has been cleaned' );
+ ::ok( !__PACKAGE__->can($export_name),
+ __PACKAGE__ . "::$export_name() has been cleared" );
+ ::ok( !__PACKAGE__->can('default_export1'),
+ __PACKAGE__ . '::default_export1() has been cleaned' );
+ ::ok( !__PACKAGE__->can('default_export2'),
+ __PACKAGE__ . '::default_export2() has been cleaned' );
+ ::ok( !__PACKAGE__->can('has'),
+ __PACKAGE__ . '::has() has been cleaned' );
}
{
+
package UseParent2;
- ExGroups2->import(':parent2', { install_as => (my $export_name = __PACKAGE__.'_code') });
+ ExGroups2->import( ':parent2',
+ { install_as => ( my $export_name = __PACKAGE__ . '_code' ) } );
- ::ok( ! __PACKAGE__->can($export_name), '"all" group will not call code groups' );
+ ::ok( !__PACKAGE__->can($export_name),
+ '"all" group will not call code groups' );
::can_ok( __PACKAGE__, 'exgroups2_as_is' );
::can_ok( __PACKAGE__, 'exgroups2_with_caller' );
::can_ok( __PACKAGE__, 'default_export1' );
ExGroups2->unimport;
- ::ok( ! __PACKAGE__->can('exgroups2_as_is'), __PACKAGE__.'::exgroups2_as_is() has been cleaned' );
- ::ok( ! __PACKAGE__->can('exgroups2_with_caller'), __PACKAGE__.'::exgroups2_with_caller() has been cleaned' );
- ::ok( ! __PACKAGE__->can('default_export1'), __PACKAGE__.'::default_export1() has been cleaned' );
- ::ok( ! __PACKAGE__->can('has'), __PACKAGE__.'::has() has been cleaned' );
+ ::ok( !__PACKAGE__->can('exgroups2_as_is'),
+ __PACKAGE__ . '::exgroups2_as_is() has been cleaned' );
+ ::ok( !__PACKAGE__->can('exgroups2_with_caller'),
+ __PACKAGE__ . '::exgroups2_with_caller() has been cleaned' );
+ ::ok( !__PACKAGE__->can('default_export1'),
+ __PACKAGE__ . '::default_export1() has been cleaned' );
+ ::ok( !__PACKAGE__->can('has'),
+ __PACKAGE__ . '::has() has been cleaned' );
}