class Jerakia::Lookup::PluginFactory
Public Class Methods
new()
click to toggle source
# File lib/jerakia/lookup/pluginfactory.rb, line 2 def initialize Jerakia.log.debug('Loaded plugin handler') @plugin_config = Jerakia.config[:plugins] || {} end
Public Instance Methods
create_plugin_method(name, &block)
click to toggle source
# File lib/jerakia/lookup/pluginfactory.rb, line 7 def create_plugin_method(name, &block) self.class.send(:define_method, name, &block) end
register(name, plugin)
click to toggle source
# File lib/jerakia/lookup/pluginfactory.rb, line 11 def register(name, plugin) begin require "jerakia/lookup/plugin/#{name}" rescue LoadError => e raise Jerakia::Error, "Cannot load plugin #{name}, #{e.message}" end plugin.activate(name) create_plugin_method(name) do plugin end if plugin.respond_to?('autorun') Jerakia.log.debug("Found autorun method for plugin #{name}, executing") if plugin.method('autorun').arity == 1 plugin.autorun (@plugin_config[name.to_s] || {}) else plugin.autorun end end end