| Class | BoxGrinder::PluginManager |
| In: |
lib/boxgrinder-build/managers/plugin-manager.rb
lib/boxgrinder-build/managers/plugin-manager.rb |
| Parent: | Object |
| plugins | [R] | |
| plugins | [R] |
# File lib/boxgrinder-build/managers/plugin-manager.rb, line 36
36: def initialize
37: @plugins = {:delivery => {}, :os => {}, :platform => {}}
38: end
# File lib/boxgrinder-build/managers/plugin-manager.rb, line 36
36: def initialize
37: @plugins = {:delivery => {}, :os => {}, :platform => {}}
38: end
# File lib/boxgrinder-build/managers/plugin-manager.rb, line 64
64: def initialize_plugin(type, name)
65: plugins = @plugins[type]
66: # this should never happen
67: raise "There are no #{type} plugins." if plugins.nil?
68: plugin_info = plugins[name]
69: raise "There is no #{type} plugin registered for '#{name}' type/name." if plugin_info.nil?
70:
71: begin
72: plugin = plugin_info[:class].new
73: rescue
74: raise "Error while initializing '#{plugin_info[:class].to_s}' plugin."
75: end
76:
77: [plugin, plugin_info]
78: end
# File lib/boxgrinder-build/managers/plugin-manager.rb, line 64
64: def initialize_plugin(type, name)
65: plugins = @plugins[type]
66: # this should never happen
67: raise "There are no #{type} plugins." if plugins.nil?
68: plugin_info = plugins[name]
69: raise "There is no #{type} plugin registered for '#{name}' type/name." if plugin_info.nil?
70:
71: begin
72: plugin = plugin_info[:class].new
73: rescue
74: raise "Error while initializing '#{plugin_info[:class].to_s}' plugin."
75: end
76:
77: [plugin, plugin_info]
78: end
# File lib/boxgrinder-build/managers/plugin-manager.rb, line 40
40: def register_plugin(clazz, info)
41: info.merge!(:class => clazz)
42:
43: validate_plugin_info(info)
44:
45: raise "We already have registered plugin for #{info[:name]}." unless @plugins[info[:name]].nil?
46:
47: unless info[:types].nil?
48: info[:types].each do |type|
49: @plugins[info[:type]][type] = info
50: end
51: else
52: @plugins[info[:type]][info[:name]] = info
53: end
54:
55: self
56: end
# File lib/boxgrinder-build/managers/plugin-manager.rb, line 40
40: def register_plugin(clazz, info)
41: info.merge!(:class => clazz)
42:
43: validate_plugin_info(info)
44:
45: raise "We already have registered plugin for #{info[:name]}." unless @plugins[info[:name]].nil?
46:
47: unless info[:types].nil?
48: info[:types].each do |type|
49: @plugins[info[:type]][type] = info
50: end
51: else
52: @plugins[info[:type]][info[:name]] = info
53: end
54:
55: self
56: end
# File lib/boxgrinder-build/managers/plugin-manager.rb, line 58
58: def validate_plugin_info(info)
59: raise "No name specified for your plugin" if info[:name].nil?
60: raise "No class specified for your plugin" if info[:class].nil?
61: raise "No type specified for your plugin" if info[:type].nil?
62: end
# File lib/boxgrinder-build/managers/plugin-manager.rb, line 58
58: def validate_plugin_info(info)
59: raise "No name specified for your plugin" if info[:name].nil?
60: raise "No class specified for your plugin" if info[:class].nil?
61: raise "No type specified for your plugin" if info[:type].nil?
62: end