Class: Architect::PluginManager
- Inherits:
-
Object
- Object
- Architect::PluginManager
- Defined in:
- lib/architect/plugin_manager.rb
Instance Attribute Summary collapse
-
#pluginconfigdir ⇒ Object
The path to the configuration directory for plugins.
-
#plugins ⇒ Object
readonly
Returns the value of attribute plugins.
Instance Method Summary collapse
-
#initialize(config) ⇒ PluginManager
constructor
A new instance of PluginManager.
-
#unregister_all ⇒ Object
Before the program exist, each plugin is unregistered.
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
#pluginconfigdir ⇒ Object
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 |
#plugins ⇒ Object (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_all ⇒ Object
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 |