Provided by: libcatmandu-perl_1.0700-1_all
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