NAME
Catmandu::Pluggable - A role for classes that need plugin capabilities
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;
METHODS
plugin_namespace
Returns the namespace where all plugins for your class can be found.
with_plugins(NAME)
with_plugins(NAME,NAME,...)
This class method returns a subclass of your class with all provided plugins NAME-s implemented.
SEE ALSO
Catmandu::Bag, Catmandu::Plugin::Datestamps, Catmandu::Plugin::Versioning