https://github.com/awncorp/data-object-role-proxyable
Proxyable Role for Perl 5
https://github.com/awncorp/data-object-role-proxyable
object-oriented perl perl5
Last synced: 7 months ago
JSON representation
Proxyable Role for Perl 5
- Host: GitHub
- URL: https://github.com/awncorp/data-object-role-proxyable
- Owner: awncorp
- License: other
- Created: 2020-10-03T19:05:39.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-10-03T20:35:04.000Z (over 5 years ago)
- Last Synced: 2025-02-21T09:19:28.618Z (over 1 year ago)
- Topics: object-oriented, perl, perl5
- Language: Perl
- Size: 29.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README
- Changelog: CHANGES
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
NAME
Data::Object::Role::Proxyable
ABSTRACT
Proxyable Role for Perl 5
SYNOPSIS
package Example;
use Moo;
with 'Data::Object::Role::Proxyable';
sub build_proxy {
my ($self, $package, $method, @args) = @_;
if ($method eq 'true') {
return sub {
return 1;
}
}
if ($method eq 'false') {
return sub {
return 0;
}
}
return undef;
}
package main;
my $example = Example->new;
DESCRIPTION
This package provides a wrapper around the AUTOLOAD routine which
processes calls to routines which don't exist. Adding a build_proxy
method to the consuming class acts as a hook into routine dispatching,
which processes calls to routines which don't exist. The build_proxy
routine is called as a method and receives $self, $package, $method,
and any arguments passed to the method as a list of arguments, e.g.
@args. The build_proxy method must return a routine (i.e. a callback)
or the undefined value which results in a "method missing" error.
AUTHOR
Al Newkirk, awncorp@cpan.org
LICENSE
Copyright (C) 2011-2019, Al Newkirk, et al.
This is free software; you can redistribute it and/or modify it under
the terms of the The Apache License, Version 2.0, as elucidated in the
"license file"
.
PROJECT
Wiki
Project
Initiatives
Milestones
Contributing
Issues