class Wongi::Engine::NccPartner

Attributes

divergent[RW]
ncc[RW]

Public Instance Methods

beta_activate(token) click to toggle source
# File lib/wongi-engine/beta/ncc_partner.rb, line 9
def beta_activate token
  t = Token.new self, token, nil, {}
  owner = owner_for( t )
  t.overlay.add_token(t, self)
  if owner
    owner.ncc_results << t
    t.owner = owner
    owner.node.ncc_deactivate owner
  end
end
beta_deactivate(t) click to toggle source
# File lib/wongi-engine/beta/ncc_partner.rb, line 20
def beta_deactivate t
  token = tokens.find { |tok| tok.parent == t }
  return unless token
  token.overlay.remove_token(token, self)
  if owner = token.owner
    owner.ncc_results.delete token
    if owner.ncc_results.empty?
      ncc.ncc_activate owner
    end
  end
end

Private Instance Methods

owner_for(token) click to toggle source
# File lib/wongi-engine/beta/ncc_partner.rb, line 34
def owner_for token
  divergent_token = token.ancestors.find { |t| t.node == divergent }
  ncc.tokens.find { |t| t.ancestors.include? divergent_token }
end