class Wongi::Engine::RootNode
Public Instance Methods
beta_activate(token)
click to toggle source
# File lib/wongi-engine/beta/root_node.rb, line 16 def beta_activate(token) # existing = tokens.find { |et| et.duplicate? token } # return if existing # TODO: really? overlay.add_token(token) children.each do |child| child.beta_activate(Token.new(child, token, nil)) end nil end
beta_deactivate(token)
click to toggle source
# File lib/wongi-engine/beta/root_node.rb, line 29 def beta_deactivate(token) return nil unless tokens.find token overlay.remove_token(token) children.each do |child| child.tokens.select { _1.child_of?(token) }.each { child.beta_deactivate(_1) } end nil end
refresh_child(child)
click to toggle source
# File lib/wongi-engine/beta/root_node.rb, line 41 def refresh_child(child) tokens.each do |token| child.beta_activate(Token.new(child, token, nil)) end end
seed(assignments = {})
click to toggle source
# File lib/wongi-engine/beta/root_node.rb, line 3 def seed(assignments = {}) @seed = assignments t = Token.new(self, nil, nil, assignments) rete.default_overlay.add_token(t) end
subst(valuations)
click to toggle source
# File lib/wongi-engine/beta/root_node.rb, line 9 def subst(valuations) beta_deactivate(tokens.first) token = Token.new(self, nil, nil, @seed) valuations.each { |variable, value| token.subst variable, value } beta_activate(token) end