Class: RBI::Index
- Includes:
- T::Enumerable
- Defined in:
- lib/rbi/index.rb
Class Method Summary collapse
-
.index(*node) ⇒ Object
: (*Node node) -> Index.
Instance Method Summary collapse
-
#[](id) ⇒ Object
: (String id) -> Array.
-
#index(*nodes) ⇒ Object
: (*Node nodes) -> void.
-
#initialize ⇒ Index
constructor
: -> void.
-
#keys ⇒ Object
: -> Array.
-
#visit(node) ⇒ Object
: (Node? node) -> void.
Methods inherited from Visitor
Constructor Details
#initialize ⇒ Index
: -> void
18 19 20 21 |
# File 'lib/rbi/index.rb', line 18 def initialize super @index = T.let({}, T::Hash[String, T::Array[Node]]) end |
Class Method Details
.index(*node) ⇒ Object
: (*Node node) -> Index
10 11 12 13 14 |
# File 'lib/rbi/index.rb', line 10 def index(*node) index = Index.new index.visit_all(node) index end |
Instance Method Details
#[](id) ⇒ Object
: (String id) -> Array
29 30 31 |
# File 'lib/rbi/index.rb', line 29 def [](id) @index[id] ||= [] end |
#index(*nodes) ⇒ Object
: (*Node nodes) -> void
34 35 36 |
# File 'lib/rbi/index.rb', line 34 def index(*nodes) nodes.each { |node| visit(node) } end |
#visit(node) ⇒ Object
: (Node? node) -> void
40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/rbi/index.rb', line 40 def visit(node) return unless node case node when Scope index_node(node) visit_all(node.nodes) when Tree visit_all(node.nodes) when Indexable index_node(node) end end |