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