Class/Module Index [+]

Quicksearch

Nanoc::PluginRegistry::PluginMethods

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.

Public Instance Methods

all() click to toggle source

@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
identifier(identifier=nil) click to toggle source

@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
identifiers(*identifiers) click to toggle source

@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
named(name) click to toggle source

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
register(class_or_name, *identifiers) click to toggle source

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

[Validate]

Generated with the Darkfish Rdoc Generator 2.