class Dawg::Node

Attributes

edge_count[RW]
edges[RW]
final[RW]
id[RW]
index[RW]

Public Class Methods

new(id: @@next_id, final: false, edge_count: 0, index: -1) click to toggle source
# File lib/dawg/node/node.rb, line 7
def initialize(id: @@next_id, final: false, edge_count: 0, index: -1)
  @id = id
  @@next_id += 1
  @final = final
  @edge_count = edge_count
  @index = index
  @edges = {}
end

Public Instance Methods

==(other) click to toggle source
# File lib/dawg/node/node.rb, line 37
def ==(other)
  to_s == other.to_s
end
[](letter) click to toggle source
# File lib/dawg/node/node.rb, line 41
def [](letter)
  @edges[letter]
end
each_edge() { |letter| ... } click to toggle source
# File lib/dawg/node/node.rb, line 45
def each_edge(&block)
  @edges.each do |letter, node|
    yield letter
  end
end
hash() click to toggle source
# File lib/dawg/node/node.rb, line 33
def hash
  to_s.hash
end
to_s() click to toggle source
# File lib/dawg/node/node.rb, line 16
def to_s
  arr = []
  if @final
      arr<<'1'
  else
      arr<<'0'
  end

  @edges.each do |label,node|
      arr << label.to_s
      arr << node.id.to_s
  end

  arr.join('_')

end