class Wongi::Engine::FilterNode

Attributes

test[RW]

@return [Wongi::Engine::FilterTest]

Public Class Methods

new(parent, test) click to toggle source
Calls superclass method Wongi::Engine::BetaNode::new
# File lib/wongi-engine/beta/filter_node.rb, line 7
def initialize(parent, test)
  super parent
  self.test = test
end

Public Instance Methods

beta_activate(token) click to toggle source
# File lib/wongi-engine/beta/filter_node.rb, line 12
def beta_activate(token)
  return if tokens.find { |t| t.duplicate? token }

  return unless test.passes?(token)

  overlay.add_token(token)

  children.each do |child|
    child.beta_activate Token.new(child, token, nil, {})
  end
end
beta_deactivate(token) click to toggle source
# File lib/wongi-engine/beta/filter_node.rb, line 24
def beta_deactivate(token)
  overlay.remove_token(token)
  beta_deactivate_children(token: token)
end
equivalent?(test) click to toggle source
# File lib/wongi-engine/beta/filter_node.rb, line 29
def equivalent?(test)
  test == self.test
end
refresh_child(child) click to toggle source
# File lib/wongi-engine/beta/filter_node.rb, line 33
def refresh_child(child)
  tokens.select { test.passes?(_1) }.each do |token|
    child.beta_activate Token.new(child, token, nil, {})
  end
end