SYNOPSIS
package My::Foo::Bar;
use Role::Tiny;
before foo => sub {
print "Before foo!\n";
};
after foo => sub {
print "After foo!\n";
};
sub extra {
print "I can do extra too\n";
}
package My::Foo;
use Moo;
with 'Catmandu::Pluggable';
sub plugin_namespace {
'My::Foo';
}
sub foo {
print "Foo!\n";
}
package main;
my $x = My::Foo->with_plugins('Bar')->new;
# prints:
# Before foo!
# Foo!
# After foo!
$x->foo;
# prints:
# I can do extra too
$x->extra;