class Jerakia::Launcher

Attributes

answer[R]
policies[R]
request[R]

Public Class Methods

evaluate(&block) click to toggle source
# File lib/jerakia/launcher.rb, line 34
def self.evaluate(&block)
  Jerakia::Dsl::Policy.evaluate(&block)
end
new() click to toggle source
# File lib/jerakia/launcher.rb, line 13
def initialize
  @policies = {}
  policy_files.each do |policy_file|
    policy = Jerakia::Dsl::Policy.evaluate_file(policy_file)
    raise Jerakia::PolicyError, "Policy #{policy.name} declared twice" if @policies[policy.name]
    @policies[policy.name] = policy
  end
end

Public Instance Methods

invoke_from_file() click to toggle source
# File lib/jerakia/launcher.rb, line 38
def invoke_from_file
  policy_name = request.policy.to_s
  Jerakia.log.debug "Invoked lookup for #{request.key} using policy #{policy_name}"
  filename = File.join(Jerakia.config.policydir, "#{policy_name}.rb")
  policy = Jerakia::Dsl::Policy.evaluate_file(filename, request)
  policy.execute
  @answer = policy.answer
end
policy_dir() click to toggle source
# File lib/jerakia/launcher.rb, line 26
def policy_dir
  Jerakia.config.policydir
end
policy_exists?(policy) click to toggle source
# File lib/jerakia/launcher.rb, line 22
def policy_exists?(policy)
  @policies.has_key?(policy.to_sym)
end
policy_files() click to toggle source
# File lib/jerakia/launcher.rb, line 30
def policy_files
  Dir[File.join(policy_dir, '*.rb')]
end