A module that contains class methods for plugins. It provides functions for setting identifiers, registering plugins and finding plugins. Plugin classes should extend this module.
@return [Hash<Symbol, Class>] All plugins of this type, with keys
being the identifiers and values the plugin classes
# File lib/nanoc/base/plugin_registry.rb, line 76 def all Nanoc::Plugin.find_all(self) end
@overload identifier(identifier)
Sets the identifier for this plugin. @param [Symbol] identifier An identifier to assign to this plugin. @return [void]
@overload identifier
@return [Symbol] The first identifier for this plugin
# File lib/nanoc/base/plugin_registry.rb, line 47 def identifier(identifier=nil) if identifier self.identifiers(identifier) else Nanoc::PluginRegistry.instance.identifiers_of(self.superclass, self).first end end
@overload identifiers(*identifiers)
Sets the identifiers for this plugin. @param [Array<Symbol>] identifiers A list of identifiers to assign to this plugin. @return [void]
@overload identifiers
@return [Array<Symbol>] The identifiers for this plugin
# File lib/nanoc/base/plugin_registry.rb, line 28 def identifiers(*identifiers) if identifiers.empty? Nanoc::PluginRegistry.instance.identifiers_of(self.superclass, self) else register(self, *identifiers) end end
Returns the plugin with the given name (identifier)
@param [String] name The name of the plugin class to find
@return [Class] The plugin class with the given name
# File lib/nanoc/base/plugin_registry.rb, line 85 def named(name) Nanoc::Plugin.find(self, name) end
Registers the given class as a plugin with the given identifier.
@param [Class, String] class_or_name The class to register, or a
string containing the class name to register.
@param [Array<Symbol>] identifiers A list of identifiers to assign to
this plugin.
@return [void]
# File lib/nanoc/base/plugin_registry.rb, line 64 def register(class_or_name, *identifiers) # Find plugin class klass = self klass = klass.superclass while klass.superclass.respond_to?(:register) # Register registry = Nanoc::PluginRegistry.instance registry.register(klass, class_or_name, *identifiers) end
Generated with the Darkfish Rdoc Generator 2.