Acme-Ane

 view release on metacpan or  search on metacpan

cpanfile  view on Meta::CPAN

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

t/01_new.t  view on Meta::CPAN

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 )