Acme-Ane
view release on metacpan or search on metacpan
requires 'perl', '5.008001';
on 'test' => sub {
requires 'Test::More', '0.98';
};
lib/Acme/Ane.pm view on Meta::CPAN
package Acme::Ane;
use 5.008001;
use strict;
use warnings;
use Exporter "import";
our $VERSION = "0.01";
our @EXPORT_OK = qw( ane );
sub new {
my ($class, $object) = @_;
bless {object => $object}, $class
}
sub is_ane { 1; }
sub ane {
__PACKAGE__->new($_[0]);
}
sub AUTOLOAD {
my $self = shift;
my $meth = our $AUTOLOAD;
$meth =~ s/.*:://;
$self->{object}->$meth(@_);
}
1;
__END__
=encoding utf-8
use strict;
use Test::More 0.98;
package Obj;
sub new {
my $class = shift;
bless +{}, $class;
}
sub some_method {
my $self = shift;
"some method";
}
package main;
use Acme::Ane qw(ane);
sub ane_check {
my $ane = shift;
ok $ane->is_ane, "is ane.";
is $ane->some_method, "some method", "can be called original method";
eval { $ane->wrong_method };
like $@, qr/Can't locate/, "cannot be called wrong method";
isa_ok $ane, "Acme::Ane", "isa Acme::Ane";
}
my $obj = Obj->new;
my $ane1 = Acme::Ane->new($obj);
( run in 1.055 second using v1.01-cache-2.11-cpan-4d50c553e7e )