def define_plugin(namespace, plugin_type, base_path, file, &code) # :yields: data
    @@environments[@actor_id].define_plugin(namespace, plugin_type, base_path, file, &code)
    myself
  end
def define_plugin(namespace, plugin_type, base_path, file, &code) # :yields: data
    @@environments[@actor_id].define_plugin(namespace, plugin_type, base_path, file, &code)
    myself
  end
Define a new plugin provider of a specified plugin type.

 * *Parameters*
   - [String, Symbol] *namespace*  Namespace that contains plugin types
   - [String, Symbol] *plugin_type*  Plugin type name to fetch default provider
   - [String] *base_path*  Base load path of the plugin provider
   - [String] *file*  File that contains the provider definition

 * *Returns*
   - [Nucleon::Manager, Celluloid::Actor]  Returns reference to self for compound operations

 * *Errors*

 * *Yields*
   - [Hash<Symbol|ANY>] *data*  Plugin load information

 See:
 - Nucleon::Environment#define_plugin