NAME
Venus::Role::Proxyable - Proxyable Role
ABSTRACT
Proxyable Role for Perl 5
SYNOPSIS
package Example;
use Venus::Class;
with 'Venus::Role::Proxyable';
has 'test';
sub build_proxy {
my ($self, $package, $method, @args) = @_;
return sub { [$self, $package, $method, @args] } if $method eq 'anything';
return undef;
}
package main;
my $example = Example->new(test => time);
# $example->anything(1..4);
DESCRIPTION
This package provides a hook into method dispatch resoluton via a wrapper around the AUTOLOAD
routine which processes calls to routines which don't exist.
METHODS
This package provides the following methods:
build_proxy
build_proxy(Str $package, Str $method, Any @args) (CodeRef | Undef)
The build_proxy method should return a code reference to fulfill the method dispatching request, or undef to result in a method not found error.
Since 0.01
- build_proxy example 1
-
package main; my $example = Example->new(test => 123); my $build_proxy = $example->build_proxy('Example', 'everything', 1..4); # undef
- build_proxy example 2
-
package main; my $example = Example->new(test => 123); my $build_proxy = $example->build_proxy('Example', 'anything', 1..4); # sub { ... }
AUTHORS
Cpanery, cpanery@cpan.org
LICENSE
Copyright (C) 2021, Cpanery
Read the "license" file.