Module: Pione::RuleEngine
- Defined in:
- lib/pione/rule-engine.rb,
lib/pione/rule-engine/data-finder.rb,
lib/pione/rule-engine/flow-handler.rb,
lib/pione/rule-engine/root-handler.rb,
lib/pione/rule-engine/basic-handler.rb,
lib/pione/rule-engine/empty-handler.rb,
lib/pione/rule-engine/action-handler.rb,
lib/pione/rule-engine/system-handler.rb,
lib/pione/rule-engine/update-criteria.rb,
lib/pione/rule-engine/engine-exception.rb
Overview
RuleEngine is a namespace for rule engine classes.
Defined Under Namespace
Modules: UpdateCriteria Classes: ActionError, ActionHandler, ActionShellScript, BasicHandler, DataFinder, EmptyHandler, FlowHandler, InvalidOutputError, RootHandler, RuleApplication, RuleExecutionError, SystemHandler, Task, UnknownRule, WorkingDirectory
Constant Summary collapse
- HANDLER =
Relation from rule definition to the handler.
{ Lang::FlowRuleDefinition => FlowHandler, Lang::ActionRuleDefinition => ActionHandler, Lang::EmptyRuleDefinition => EmptyHandler, Lang::RootRuleDefinition => RootHandler }
Class Method Summary collapse
-
.make(param) ⇒ Object
Make a rule handler with target rule's informations.
Class Method Details
.make(param) ⇒ Object
Make a rule handler with target rule's informations.
41 42 43 44 45 46 47 48 49 50 51 52 53 |
# 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 |