| 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 62
62: def initialize_plugin(type, name)
63: plugins = @plugins[type]
64: # this should never happen
65: raise "There are no #{type} plugins." if plugins.nil?
66: plugin_info = plugins[name]
67: raise "There is no #{type} plugin registered for '#{name}' type/name." if plugin_info.nil?
68:
69: begin
70: plugin = plugin_info[:class].new
71: rescue
72: raise "Error while initializing '#{plugin_info[:class].to_s}' plugin."
73: end
74:
75: [plugin, plugin_info]
76: end
# File lib/boxgrinder-build/managers/plugin-manager.rb, line 62
62: def initialize_plugin(type, name)
63: plugins = @plugins[type]
64: # this should never happen
65: raise "There are no #{type} plugins." if plugins.nil?
66: plugin_info = plugins[name]
67: raise "There is no #{type} plugin registered for '#{name}' type/name." if plugin_info.nil?
68:
69: begin
70: plugin = plugin_info[:class].new
71: rescue
72: raise "Error while initializing '#{plugin_info[:class].to_s}' plugin."
73: end
74:
75: [plugin, plugin_info]
76: end
# File lib/boxgrinder-build/managers/plugin-manager.rb, line 40
40: def register_plugin(info)
41: validate_plugin_info(info)
42:
43: raise "We already have registered plugin for #{info[:name]}." unless @plugins[info[:name]].nil?
44:
45: unless info[:types].nil?
46: info[:types].each do |type|
47: @plugins[info[:type]][type] = info
48: end
49: else
50: @plugins[info[:type]][info[:name]] = info
51: end
52:
53: self
54: end
# File lib/boxgrinder-build/managers/plugin-manager.rb, line 40
40: def register_plugin(info)
41: validate_plugin_info(info)
42:
43: raise "We already have registered plugin for #{info[:name]}." unless @plugins[info[:name]].nil?
44:
45: unless info[:types].nil?
46: info[:types].each do |type|
47: @plugins[info[:type]][type] = info
48: end
49: else
50: @plugins[info[:type]][info[:name]] = info
51: end
52:
53: self
54: end
# File lib/boxgrinder-build/managers/plugin-manager.rb, line 56
56: def validate_plugin_info(info)
57: raise "No name specified for your plugin" if info[:name].nil?
58: raise "No class specified for your plugin" if info[:class].nil?
59: raise "No type specified for your plugin" if info[:type].nil?
60: end
# File lib/boxgrinder-build/managers/plugin-manager.rb, line 56
56: def validate_plugin_info(info)
57: raise "No name specified for your plugin" if info[:name].nil?
58: raise "No class specified for your plugin" if info[:class].nil?
59: raise "No type specified for your plugin" if info[:type].nil?
60: end