Class: Wongi::Engine::AnySet
- Inherits:
-
Object
- Object
- Wongi::Engine::AnySet
- Defined in:
- lib/wongi-engine/beta/or_node.rb
Instance Attribute Summary collapse
-
#variants ⇒ Object
readonly
Returns the value of attribute variants.
Instance Method Summary collapse
- #compile(context) ⇒ Object
-
#initialize(variants) ⇒ AnySet
constructor
A new instance of AnySet.
Constructor Details
#initialize(variants) ⇒ AnySet
Returns a new instance of AnySet.
6 7 8 |
# File 'lib/wongi-engine/beta/or_node.rb', line 6 def initialize variants @variants = variants end |
Instance Attribute Details
#variants ⇒ Object (readonly)
Returns the value of attribute variants.
5 6 7 |
# File 'lib/wongi-engine/beta/or_node.rb', line 5 def variants @variants end |
Instance Method Details
#compile(context) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/wongi-engine/beta/or_node.rb', line 10 def compile context added = [] branches = variants.map do |variant| ctx = BetaNode::CompilationContext.new context.node, context.rete, context.earlier.dup, context.parameters, context.alpha_deaf members = context.earlier.size variant.compile ctx added += ctx.earlier[ (members - ctx.earlier.size) .. -1 ] # newly added elements ctx.node end context.earlier += added context.node = OrNode.new( branches ) context.node.refresh context end |