Exporter-Extensible
view release on metacpan or search on metacpan
t/10-options.t view on Meta::CPAN
#! /usr/bin/env perl
use strict;
use warnings;
no warnings 'once', 'redefine';
use Test::More;
use Scalar::Util 'weaken';
use_ok( 'Exporter::Extensible' ) or BAIL_OUT;
my @events;
ok( eval q{
package Example;
$INC{'Example.pm'}=1;
use Exporter::Extensible -exporter_setup => 1;
our %EXPORT= (
-alpha => [ 'alpha', 0 ],
-beta => [ 'beta', 1 ],
-gamma => [ 'gamma', '?' ],
-delta => [ 'delta', '*' ],
);
sub exporter_install {
push @events, 'install';
shift->SUPER::exporter_install(@_);
}
sub alpha {
my $self= shift;
@_ == 0 or die "Unexpected arguments to 'alpha'";
push @events, 'alpha';
}
sub beta {
my ($self, $arg1)= (shift, shift);
@_ == 0 or die "Unexpected arguments to 'beta'";
push @events, 'beta';
}
sub gamma {
my ($self, $maybe_arg)= (shift, shift);
@_ == 0 or die "Unexpected arguments to 'gamma'";
push @events, 'gamma';
if ($maybe_arg) {
push @events, $maybe_arg->{event};
}
$self->exporter_also_import('-alpha');
}
sub delta {
my ($self, @all_args)= @_;
main::note "Delta Sees ".join(' ', @all_args);
push @events, 'delta';
my $n= 0;
for (@all_args) {
++$n;
last if $_ eq 'd';
}
return $n;
}
1;
}, 'declare Example' ) or diag $@;
my @tests= (
[
[qw( -delta )],
[qw( delta install )],
],
[
[qw( -alpha -delta )],
( run in 0.680 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )