Class: RubyIndexer::PrefixTree::Node

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby_indexer/lib/ruby_indexer/prefix_tree.rb

Overview

: [Value]

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(key, value, parent = nil) ⇒ Node

: (String key, Value value, ?Node? parent) -> void



127
128
129
130
131
132
133
# File 'lib/ruby_indexer/lib/ruby_indexer/prefix_tree.rb', line 127

def initialize(key, value, parent = nil)
  @key = key
  @value = value
  @parent = parent
  @children = {}
  @leaf = false
end

Instance Attribute Details

#childrenObject (readonly)

: Hash[String, Node]



112
113
114
# File 'lib/ruby_indexer/lib/ruby_indexer/prefix_tree.rb', line 112

def children
  @children
end

#keyObject (readonly)

: String



115
116
117
# File 'lib/ruby_indexer/lib/ruby_indexer/prefix_tree.rb', line 115

def key
  @key
end

#leafObject

: bool



121
122
123
# File 'lib/ruby_indexer/lib/ruby_indexer/prefix_tree.rb', line 121

def leaf
  @leaf
end

#parentObject (readonly)

: Node?



124
125
126
# File 'lib/ruby_indexer/lib/ruby_indexer/prefix_tree.rb', line 124

def parent
  @parent
end

#valueObject

: Value



118
119
120
# File 'lib/ruby_indexer/lib/ruby_indexer/prefix_tree.rb', line 118

def value
  @value
end

Instance Method Details

#collectObject

: -> Array



136
137
138
139
140
141
142
143
144
145
146
# File 'lib/ruby_indexer/lib/ruby_indexer/prefix_tree.rb', line 136

def collect
  result = []
  stack = [self]

  while (node = stack.pop)
    result << node.value if node.leaf
    stack.concat(node.children.values)
  end

  result
end