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.