NAME
IM::Engine::PluggableConstructor - provide new_with_plugins
DESCRIPTION
Some plugins need to extend built-in classes. For example, IM::Engine::Plugin::State needs to extend IM::Engine::User with methods such as get_state
and set_state
. This role provides a new constructor new_with_plugins
to classes that need to be extensible. Plugins can then specify roles to use for the instance, as well as additional constructor parameters.
PARAMETERS
role_specifier
A string representing the role that can extend the consuming class. The role specifier uses the same rules as MooseX::Traits: prefix a +
character to specify an absolute role name, otherwise the class's _trait_namespace
is prepended.
METHODS
new_with_plugins
An alternate constructor that includes additional parameters specified by plugins. This also extends the traits
option to include additional traits specified by plugins.
You must pass the engine
argument so we can ask plugins about what to include.