Class: Wongi::Engine::AssumingClause

Inherits:
Object
  • Object
show all
Defined in:
lib/wongi-engine/dsl/assuming.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(base_rule_name) ⇒ AssumingClause

Returns a new instance of AssumingClause.



17
18
19
# File 'lib/wongi-engine/dsl/assuming.rb', line 17

def initialize base_rule_name
  @base_rule_name = base_rule_name
end

Instance Attribute Details

#base_rule_nameObject (readonly)

Returns the value of attribute base_rule_name.



15
16
17
# File 'lib/wongi-engine/dsl/assuming.rb', line 15

def base_rule_name
  @base_rule_name
end

Instance Method Details

#compile(context) ⇒ Object

Raises:



21
22
23
24
25
26
27
# File 'lib/wongi-engine/dsl/assuming.rb', line 21

def compile context
  base_production = context.rete.productions[base_rule_name]
  raise UndefinedBaseRule.new(base_rule_name) unless base_production
  raise DefinitionError.new("'assuming' cannot be preceded by other matchers") unless context.node.root?
  raise StandardError.new("missing base context") unless base_production.compilation_context
  base_production.compilation_context.dup
end