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.



28
29
30
# File 'lib/droonga/plugin_registry.rb', line 28

def initialize
  @plugins = {}
end

Instance Method Details

#[](name) ⇒ Object



40
41
42
# File 'lib/droonga/plugin_registry.rb', line 40

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

#clearObject



44
45
46
# File 'lib/droonga/plugin_registry.rb', line 44

def clear
  @plugins.clear
end

#each(&block) ⇒ Object



32
33
34
# File 'lib/droonga/plugin_registry.rb', line 32

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

#find_sub_classes(name, klass) ⇒ Object



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

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



36
37
38
# File 'lib/droonga/plugin_registry.rb', line 36

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