module Cuniculus::Plugins

Base plugin load and registration module.

Public Class Methods

load_plugin(name) click to toggle source

Method that loads a plugin file. It should not be called directly; instead use {Cuniculus.plugin} method to add and configure a plugin.

@param name [Symbol] name of plugin, also matching its file name.

@return [Module]

   # File lib/cuniculus/plugins.rb
16 def self.load_plugin(name)
17   h = @plugins
18   unless plugin = h[name]
19     require "cuniculus/plugins/#{name}"
20     raise Cuniculus::Error, "Plugin was not registered with 'register_plugin'" unless plugin = h[name]
21   end
22   plugin
23 end
register_plugin(name, mod) click to toggle source

Include plugin module into a Hash so it can be referenced by its name. This method should be called by the plugin itself, so that when it is required (by {Cuniculus::Plugins.load_plugin}), it can be found.

@param name [Symbol] Name of the plugin, matching its file name. @param mod [Module] The plugin module.

@example Register a plugin named `my_plugin`

# file: my_plugin.rb
module Cuniculus
  module Plugins
    module MyPlugin
    end
    register_plugin(:my_plugin, MyPlugin)
  end
end
   # File lib/cuniculus/plugins.rb
41 def self.register_plugin(name, mod)
42   @plugins[name] = mod
43 end