Class: Architect::PluginManager

Inherits:
Object
  • Object
show all
Defined in:
lib/architect/plugin_manager.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ PluginManager

Returns a new instance of PluginManager.



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/architect/plugin_manager.rb', line 13

def initialize(config)
  @config = config.to_hash
  @pluginconfigdir = '/etc/architect/plugin.d/'
  @log = Architect::Log.log
  #log.level = Logger::DEBUG
  @plugins = OpenStruct.new
  plugindir =  File.dirname(__FILE__) + '/plugin'
  log.debug "registering plugins in #{plugindir}"
  Dir.glob("#{plugindir}/*.rb").each do |pluginfile|
    load pluginfile
  end
  register_all_plugins
  plugins.each do |plugin|
    conffile = "#{pluginconfigdir}/#{plugin.name}.yaml"
    if File.exist? conffile
      plugin.configure Architect::Config.symbolize_hash YAML.load(conffile)
    end
  end
end

Instance Attribute Details

#pluginconfigdirObject

The path to the configuration directory for plugins. Each plugin gets it’s own configuration file with the same name as the plugin.



9
10
11
# File 'lib/architect/plugin_manager.rb', line 9

def pluginconfigdir
  @pluginconfigdir
end

#pluginsObject (readonly)

Returns the value of attribute plugins.



11
12
13
# File 'lib/architect/plugin_manager.rb', line 11

def plugins
  @plugins
end

Instance Method Details

#unregister_allObject

Before the program exist, each plugin is unregistered. This gives it a chance to clean up.



35
36
37
# File 'lib/architect/plugin_manager.rb', line 35

def unregister_all
  raise 'FIXME - STUB'
end