module Pione::RuleEngine
RuleEngine
is a namespace for rule engine classes.
Constants
- HANDLER
Relation from rule definition to the handler.
Public Class Methods
make(param)
click to toggle source
Make a rule handler with target rule’s informations.
@param [Hash.new] param @option param [String] :package_id
package ID
@option param [String] :rule_name
rule name
@option param [Array] :inputs
input data
@option param [Object] :param_set
parameter set
@option param [String] :domain_id
domain ID
@option param [String] :caller_id
caller ID
@option param [URI] :request_from
URI that the client requested the job from
@option param [String] :session_id
session ID
# File lib/pione/rule-engine.rb, line 41 def self.make(param) # check requisite parameters requisites = [:tuple_space, :env, :package_id, :rule_name, :inputs, :param_set, :domain_id, :caller_id] requisites.each do |requisite| unless param.has_key?(requisite) raise ArgumentError.new("parameter '%s' is requisite for rule engine." % requisite) end end # make a rule handler rule_definition = param[:env].rule_get(Lang::RuleExpr.new(param[:rule_name], param[:package_id])) HANDLER[rule_definition.class].new(param.merge(rule_definition: rule_definition)) end