class Lolcommits::Plugin

Attributes

options[RW]
runner[RW]

Public Class Methods

name() click to toggle source

identifying plugin name (for config, listing)

# File lib/lolcommits/plugin.rb, line 79
def self.name
  'plugin'
end
new(runner) click to toggle source
# File lib/lolcommits/plugin.rb, line 7
def initialize(runner)
  debug "Initializing"
  self.runner = runner
  self.options = ['enabled']
end

Public Instance Methods

configuration() click to toggle source
# File lib/lolcommits/plugin.rb, line 26
def configuration
  config = runner.config.read_configuration if runner
  return Hash.new unless config
  config[self.class.name] || Hash.new
end
configure_options!() click to toggle source

ask for plugin options

# File lib/lolcommits/plugin.rb, line 33
def configure_options!
  puts "Configuring plugin: #{self.class.name}\n"
  options.inject(Hash.new) do |acc, option|
    print "#{option}: "
    val = STDIN.gets.strip.downcase
    if %w(true yes).include?(val)
      val = true
    elsif %(false no).include?(val)
      val = false
    end
    acc.merge(option => val)
  end
end
debug(msg) click to toggle source

uniform debug logging for plugins

Calls superclass method
# File lib/lolcommits/plugin.rb, line 74
def debug(msg)
  super("Plugin: #{self.class.to_s}: " + msg)
end
execute() click to toggle source
# File lib/lolcommits/plugin.rb, line 13
def execute
  if is_enabled?
    debug "I am enabled, about to run"
    run
  else
    debug "Disabled, doing nothing for execution"
  end
end
is_configured?() click to toggle source

empty plugin configuration

# File lib/lolcommits/plugin.rb, line 62
def is_configured?
  !configuration.empty?
end
is_enabled?() click to toggle source
# File lib/lolcommits/plugin.rb, line 47
def is_enabled?
  configuration['enabled'] == true
end
puts(*args) click to toggle source

uniform puts for plugins dont puts if the runner wants to be silent (stealth mode)

Calls superclass method
# File lib/lolcommits/plugin.rb, line 68
def puts(*args)
  return if runner && runner.capture_stealth
  super(args)
end
run() click to toggle source
# File lib/lolcommits/plugin.rb, line 22
def run
  debug "base plugin, does nothing to anything"
end
valid_configuration?() click to toggle source

check config is valid

# File lib/lolcommits/plugin.rb, line 52
def valid_configuration?
  if is_configured?
    true
  else
    puts "Missing #{self.class.name} config - configure with: lolcommits --config -p #{self.class.name}"
    false
  end
end