Module: KnifeSpork::Plugins

Defined in:
lib/knife-spork/plugins.rb,
lib/knife-spork/plugins/git.rb,
lib/knife-spork/plugins/grove.rb,
lib/knife-spork/plugins/slack.rb,
lib/knife-spork/plugins/irccat.rb,
lib/knife-spork/plugins/jabber.rb,
lib/knife-spork/plugins/plugin.rb,
lib/knife-spork/plugins/hipchat.rb,
lib/knife-spork/plugins/rubocop.rb,
lib/knife-spork/plugins/campfire.rb,
lib/knife-spork/plugins/graphite.rb,
lib/knife-spork/plugins/statusnet.rb,
lib/knife-spork/plugins/foodcritic.rb,
lib/knife-spork/plugins/eventinator.rb

Defined Under Namespace

Classes: Campfire, Eventinator, Foodcritic, Git, Graphite, Grove, HipChat, Irccat, Jabber, Plugin, Rubocop, Slack, StatusNet

Class Method Summary collapse

Class Method Details

.klassesObject

Get and return a list of all subclasses (plugins) that are not the base plugin



21
22
23
24
25
# File 'lib/knife-spork/plugins.rb', line 21

def self.klasses
  @@klasses ||= self.constants.collect do |c|
    self.const_get(c) if self.const_get(c).is_a?(Class) && self.const_get(c) != KnifeSpork::Plugins::Plugin
  end.compact
end

.run(options = {}) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/knife-spork/plugins.rb', line 6

def self.run(options = {})
  hook = options[:hook].to_sym

  #Load each of the drop-in plugins specified in the custom plugin path
  if (options[:config][:custom_plugin_path] !=nil)
    Dir[File.expand_path("#{options[:config][:custom_plugin_path]}/*.rb")].each { |f| require f }
  end

  klasses.each do |klass|
    plugin = klass.new(options)
    plugin.send(hook) if plugin.respond_to?(hook) && plugin.enabled?
  end
end