class Wongi::Engine::BetaMemory

Public Instance Methods

beta_activate(token) click to toggle source
# File lib/wongi-engine/beta/beta_memory.rb, line 19
def beta_activate token
  existing = tokens.find { |et| et.duplicate? token }
  return if existing # TODO really?
  token.overlay.add_token(token, self)
  children.each do |child|
    child.beta_activate token
  end
  token
end
beta_deactivate(token) click to toggle source
# File lib/wongi-engine/beta/beta_memory.rb, line 29
def beta_deactivate token
  return nil unless tokens.find token
  token.overlay.remove_token(token, self)
  token.deleted!
  if token.parent
    token.parent.children.delete token # should this go into Token#destroy?
  end
  children.each do |child|
    child.beta_deactivate token
  end
  token
end
refresh_child(child) click to toggle source
# File lib/wongi-engine/beta/beta_memory.rb, line 42
def refresh_child child
  tokens.each do |token|
    child.beta_activate token
  end
end
seed(assignments = {}) click to toggle source
# File lib/wongi-engine/beta/beta_memory.rb, line 6
def seed assignments = {}
  @seed = assignments
  t = Token.new( self, nil, nil, assignments )
  rete.default_overlay.add_token(t, self)
end
subst(valuations) click to toggle source
# File lib/wongi-engine/beta/beta_memory.rb, line 12
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