Class: YleTf::Plugin::Manager

Inherits:
Object
  • Object
show all
Defined in:
lib/yle_tf/plugin/manager.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeManager

Returns a new instance of Manager.



10
11
12
# File 'lib/yle_tf/plugin/manager.rb', line 10

def initialize
  @registered = []
end

Instance Attribute Details

#registeredObject (readonly)

Returns the value of attribute registered.



8
9
10
# File 'lib/yle_tf/plugin/manager.rb', line 8

def registered
  @registered
end

Instance Method Details

#action_hooksObject



21
22
23
# File 'lib/yle_tf/plugin/manager.rb', line 21

def action_hooks
  registered.map(&:action_hooks).flatten
end

#backendsObject



42
43
44
45
46
47
48
49
# File 'lib/yle_tf/plugin/manager.rb', line 42

def backends
  {}.tap do |backends|
    registered.each do |plugin|
      backends.merge!(plugin.backends)
    end
    backends.default = backends.delete(DEFAULT_BACKEND)
  end
end

#commandsObject



25
26
27
28
29
30
31
32
# File 'lib/yle_tf/plugin/manager.rb', line 25

def commands
  {}.tap do |commands|
    registered.each do |plugin|
      commands.merge!(plugin.commands)
    end
    commands.default = commands.delete(DEFAULT_COMMAND)
  end
end

#config_contextsObject



34
35
36
# File 'lib/yle_tf/plugin/manager.rb', line 34

def config_contexts
  registered.map(&:config_context)
end

#default_configsObject



38
39
40
# File 'lib/yle_tf/plugin/manager.rb', line 38

def default_configs
  registered.map(&:default_config)
end

#register(plugin) ⇒ Object



14
15
16
17
18
19
# File 'lib/yle_tf/plugin/manager.rb', line 14

def register(plugin)
  if !registered.include?(plugin)
    Logger.debug("Registered plugin: #{plugin}")
    @registered << plugin
  end
end