module Hookit::Hook

Public Instance Methods

converge(map, list) click to toggle source
# File lib/hookit/hook.rb, line 19
def converge(map, list)
  Converginator.new(map, list).converge!
end
db() click to toggle source
# File lib/hookit/hook.rb, line 33
def db
  @db ||= Hookit::DB.new
end
detect_platform() click to toggle source
# File lib/hookit/hook.rb, line 61
def detect_platform
  Hookit.platforms.each do |key, value|
    platform = value.new
    if platform.detect?
      return platform
    end
  end
  false
end
dict() click to toggle source
# File lib/hookit/hook.rb, line 37
def dict
  @dict ||= {}
end
get(key) click to toggle source
# File lib/hookit/hook.rb, line 45
def get(key)
  dict[key]
end
log(level, message) click to toggle source
# File lib/hookit/hook.rb, line 49
def log(level, message)
  logger.log level, message
end
logger() click to toggle source
# File lib/hookit/hook.rb, line 53
def logger
  @logger ||= Hookit::Logger.new(get(:logfile), get(:log_level))
end
method_missing(method_symbol, *args, &block) click to toggle source

awesome resource-backed dsl

Calls superclass method
# File lib/hookit/hook.rb, line 72
def method_missing(method_symbol, *args, &block)
  resource_klass = Hookit.resources.get(method_symbol)
  if resource_klass
    resource = resource_klass.new(*args)
    resource.dict = dict
    resource.instance_eval(&block) if block_given?
    if resource.can_run?
      actions = resource.action
      if actions.length > 1
        res = {}
        actions.each do |action|
          res[action] = resource.run action
        end
        res
      else
        resource.run actions.first
      end
    end
  else
    super
  end
end
parse_payload() click to toggle source
# File lib/hookit/hook.rb, line 11
def parse_payload
  if not ARGV.empty?
    MultiJson.load ARGV.first, symbolize_keys: true
  else
    {}
  end
end
payload() click to toggle source
# File lib/hookit/hook.rb, line 7
def payload
  @payload ||= parse_payload
end
platform() click to toggle source
# File lib/hookit/hook.rb, line 57
def platform
  @platform ||= detect_platform
end
registry(key, value=nil) click to toggle source
# File lib/hookit/hook.rb, line 23
def registry(key, value=nil)
  # normalize the catalog with keys
  key = key.to_sym
  unless value.nil?
    db.put(key, value)
  else
    db.fetch(key)
  end
end
set(key, value) click to toggle source
# File lib/hookit/hook.rb, line 41
def set(key, value)
  dict[key] = value
end