Index: lib/cerberus/component_lazy_loader.rb =================================================================== --- lib/cerberus/component_lazy_loader.rb (revision 189) +++ lib/cerberus/component_lazy_loader.rb (working copy) @@ -9,10 +9,10 @@ } def self.get(type) - class_name = TYPES[type.to_sym] - say "SCM #{type} not supported" unless class_name - require "cerberus/scm/#{type}" - const_get(class_name) + class_name = TYPES[type.to_sym] + say "SCM #{type} not supported" unless class_name + require "cerberus/scm/#{type}" + const_get(class_name) end @@ -49,11 +49,16 @@ :twitter => 'Twitter' } - def self.get(type) - class_name = TYPES[type.to_sym] - say "Publisher #{type} not supported" unless class_name - require "cerberus/publisher/#{type}" - const_get(class_name) + def self.get(type, config) + class_name = TYPES[type.to_sym] + if not class_name + class_name = config[:class_name] + say "Publisher #{type} not supported" unless class_name + require config[:require] + else + require "cerberus/publisher/#{type}" + end + const_get(class_name) end end @@ -67,10 +72,10 @@ } def self.get(type) - class_name = TYPES[type.to_sym] - say "Builder #{type} not supported" unless class_name - require "cerberus/builder/#{type}" - const_get(class_name) + class_name = TYPES[type.to_sym] + say "Builder #{type} not supported" unless class_name + require "cerberus/builder/#{type}" + const_get(class_name) end end end Index: lib/cerberus/manager.rb =================================================================== --- lib/cerberus/manager.rb (revision 189) +++ lib/cerberus/manager.rb (working copy) @@ -133,7 +133,7 @@ raise "Publisher have no configuration: #{pub}" unless publisher_config events = interpret_state(publisher_config[:on_event] || @config[:publisher, :on_event] || 'default') - Publisher.get(pub).publish(@status, self, @config) if events.include?(@status.current_state) + Publisher.get(pub, publisher_config).publish(@status, self, @config) if events.include?(@status.current_state) end