class NameFinder::NodeProxy

Attributes

delimiter[R]
node[R]

Public Class Methods

new(node, delimiter) click to toggle source
# File lib/name_finder/node_proxy.rb, line 3
def initialize(node, delimiter)
  @node = node
  @delimiter = delimiter
end

Public Instance Methods

add(buffer, term) click to toggle source
# File lib/name_finder/node_proxy.rb, line 10
def add(buffer, term)
  if buffer.at_end?
    node[0] = term
  else
    subtree = node[buffer.head] ||= {}
    wrap(subtree).add buffer.rest, term
  end
end
find(buffer, new_word=false) click to toggle source
# File lib/name_finder/node_proxy.rb, line 19
def find(buffer, new_word=false)
  if buffer.at_end?
    node[0]
  else
    head = buffer.head
    if subtree = node[head]
      wrap(subtree).find(buffer.rest, head == delimiter)
    elsif new_word
      node[0]
    end
  end
end

Private Instance Methods

wrap(node) click to toggle source
# File lib/name_finder/node_proxy.rb, line 33
def wrap(node)
  NodeProxy.new(node, delimiter)
end