Class: Droonga::PluginRegistry

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/droonga/plugin_registry.rb

Defined Under Namespace

Classes: UnknownPlugin

Instance Method Summary collapse

Constructor Details

#initializePluginRegistry

Returns a new instance of PluginRegistry.



26
27
28
# File 'lib/droonga/plugin_registry.rb', line 26

def initialize
  @plugins = {}
end

Instance Method Details

#[](name) ⇒ Object



38
39
40
# File 'lib/droonga/plugin_registry.rb', line 38

def [](name)
  @plugins[name]
end

#clearObject



42
43
44
# File 'lib/droonga/plugin_registry.rb', line 42

def clear
  @plugins.clear
end

#each(&block) ⇒ Object



30
31
32
# File 'lib/droonga/plugin_registry.rb', line 30

def each(&block)
  @plugins.each(&block)
end

#find_sub_classes(name, klass) ⇒ Object



46
47
48
49
50
51
52
53
54
# File 'lib/droonga/plugin_registry.rb', line 46

def find_sub_classes(name, klass)
  plugin_module = self[name]
  if plugin_module.nil?
    raise UnknownPlugin.new(name, klass)
  end
  sub_classes = []
  collect_sub_classes_recursive(plugin_module, klass, sub_classes)
  sub_classes
end

#register(name, plugin_module) ⇒ Object



34
35
36
# File 'lib/droonga/plugin_registry.rb', line 34

def register(name, plugin_module)
  @plugins[name] = plugin_module
end