class RBI::Index

Public Class Methods

index(*node) click to toggle source
# File lib/rbi/index.rb, line 10
def self.index(*node)
  index = Index.new
  index.visit_all(node)
  index
end
new() click to toggle source
Calls superclass method
# File lib/rbi/index.rb, line 17
def initialize
  super()
  @index = T.let({}, T::Hash[String, T::Array[Node]])
end

Public Instance Methods

[](id) click to toggle source
# File lib/rbi/index.rb, line 28
def [](id)
  @index[id] ||= []
end
index(node) click to toggle source
# File lib/rbi/index.rb, line 33
def index(node)
  node.index_ids.each { |id| self[id] << node }
end
keys() click to toggle source
# File lib/rbi/index.rb, line 23
def keys
  @index.keys
end
visit(node) click to toggle source
# File lib/rbi/index.rb, line 38
def visit(node)
  return unless node

  case node
  when Scope
    index(node)
    visit_all(node.nodes)
  when Tree
    visit_all(node.nodes)
  when Indexable
    index(node)
  end
end