Class: Wongi::Engine::AssignmentNode
- Inherits:
-
BetaNode
- Object
- BetaNode
- Wongi::Engine::AssignmentNode
show all
- Defined in:
- lib/wongi-engine/beta/assignment_node.rb
Instance Attribute Summary
Attributes inherited from BetaNode
#children, #parent, #rete
Instance Method Summary
collapse
Methods inherited from BetaNode
#assignment_node, #delete_token, #depth, #refresh, #root?
Methods included from CoreExt
included
Constructor Details
#initialize(parent, variable, body) ⇒ AssignmentNode
Returns a new instance of AssignmentNode.
5
6
7
8
|
# File 'lib/wongi-engine/beta/assignment_node.rb', line 5
def initialize parent, variable, body
super parent
@variable, @body = variable, body
end
|
Instance Method Details
#beta_activate(token, wme = nil, assignments = { }) ⇒ Object
10
11
12
13
14
|
# File 'lib/wongi-engine/beta/assignment_node.rb', line 10
def beta_activate token, wme = nil, assignments = { }
children.each do |child|
child.beta_activate Token.new( child, token, nil, { @variable => @body.respond_to?(:call) ? @body.call(token) : @body } )
end
end
|
#beta_deactivate(token) ⇒ Object
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/wongi-engine/beta/assignment_node.rb', line 16
def beta_deactivate token
children.each do |child|
child.tokens.each do |t|
if t.parent == token
child.beta_deactivate t
end
end
end
end
|
#refresh_child(child) ⇒ Object
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/wongi-engine/beta/assignment_node.rb', line 27
def refresh_child child
tmp = children
self.children = [ child ]
parent.tokens.each do |token|
children.each do |child|
child.beta_activate Token.new( child, token, nil, { @variable => @body.respond_to?(:call) ? @body.call(token) : @body } )
end
end
self.children = tmp
end
|