Venus::Role::Pluggable
Pluggable Role
Pluggable Role for Perl 5
package Example::Plugin::Username;
use Venus::Class;
use Digest::SHA ();
sub execute {
my ($self, $example) = @_;
return Digest::SHA::sha1_hex($example->login);
}
package Example::Plugin::Password;
use Venus::Class;
use Digest::SHA ();
attr 'value';
sub construct {
my ($class, $example) = @_;
return $class->new(value => $example->secret);
}
sub execute {
my ($self) = @_;
return Digest::SHA::sha1_hex($self->value);
}
package Example;
use Venus::Class;
with 'Venus::Role::Proxyable';
with 'Venus::Role::Pluggable';
attr 'login';
attr 'secret';
package main;
my $example = Example->new(login => 'admin', secret => 'p@ssw0rd');
# $example->username;
# $example->password;
This package provides a mechanism for dispatching to plugin classes.
t/Venus.t: present: authors t/Venus.t: present: license
6 POD Errors
The following errors were encountered while parsing the POD:
- Around line 13:
Unknown directive: =name
- Around line 21:
Unknown directive: =tagline
- Around line 29:
Unknown directive: =abstract
- Around line 37:
Unknown directive: =synopsis
- Around line 101:
Unknown directive: =description
- Around line 109:
Unknown directive: =partials