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 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

[Source]

    # 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

[Source]

    # File lib/boxgrinder-build/managers/plugin-manager.rb, line 40
40:     def register_plugin(clazz, info)
41:       info = {:class => clazz, :require_root => false}.merge(info)
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

[Source]

    # File lib/boxgrinder-build/managers/plugin-manager.rb, line 40
40:     def register_plugin(clazz, info)
41:       info = {:class => clazz, :require_root => false}.merge(info)
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

[Source]

    # 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

[Source]

    # 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

[Validate]