NAME
IM::Engine::HasPlugins - role for objects that have plugins
DESCRIPTION
This should probably only be applied to IM::Engine objects. Beware!
ATTRIBUTES
plugins
METHODS
find_plugins
Return the IM::Engine::Plugin objects that return true for the passed coderef.
plugins_with
Return the IM::Engine::Plugin objects that do the particular role. For convenience, the role specifier has IM::Engine::Plugin::
prepended to it, unless it is prefixed with +
.
each_plugin
For each plugin that does the role
argument, invoke the callback
argument. Returns nothing.
plugin_relay
For each plugin that does the role
argument, call the method
on it, passing the baton
argument to it. The return value of method
is used as the baton for the next plugin. The return value of this method is the final state of the baton.
This is useful for letting each plugin get a chance at modifying some value or object.
plugin_default
For each plugin that does the role
argument, call the method
on it. The first return value of method
that is defined will be returned from this method.
This is useful for (among other things) letting each plugin get a chance at short-circuiting some other calculation.
plugin_collect
For each plugin that does the role
argument, call the method
on it. The return values of all method
calls are collected into a list to be returned by this method.
This is useful for (among other things) letting each plugin contribute to constructor arguments.