class Wongi::Engine::AssignmentNode

Public Class Methods

new(parent, variable, body) click to toggle source
Calls superclass method
# File lib/wongi-engine/beta/assignment_node.rb, line 5
def initialize parent, variable, body
  super parent
  @variable, @body = variable, body
end

Public Instance Methods

beta_activate(token, wme = nil, assignments = { }) click to toggle source
# 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) click to toggle source
# 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
        #token.destroy
      end
    end
  end
end
refresh_child(child) click to toggle source
# 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