Class BoxGrinder::PluginManager
In: lib/boxgrinder-build/managers/plugin-manager.rb
lib/boxgrinder-build/managers/plugin-manager.rb
Parent: Object

Methods

Included Modules

Singleton Singleton

Attributes

plugins  [R] 
plugins  [R] 

Public Class methods

[Source]

    # File lib/boxgrinder-build/managers/plugin-manager.rb, line 36
36:     def initialize
37:       @plugins = {:delivery => {}, :os => {}, :platform => {}}
38:     end

[Source]

    # File lib/boxgrinder-build/managers/plugin-manager.rb, line 36
36:     def initialize
37:       @plugins = {:delivery => {}, :os => {}, :platform => {}}
38:     end

Public Instance methods

[Source]

    # 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

[Source]

    # 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

[Source]

    # 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

[Source]

    # 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

[Source]

    # 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

[Source]

    # 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

[Validate]