Class: Tapioca::RBI::Tree

Inherits:
Node
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/tapioca/rbi/model.rb,
lib/tapioca/rbi/printer.rb,
lib/tapioca/rbi/rewriters/sort_nodes.rb,
lib/tapioca/rbi/rewriters/group_nodes.rb,
lib/tapioca/rbi/rewriters/nest_singleton_methods.rb,
lib/tapioca/rbi/rewriters/nest_non_public_methods.rb

Direct Known Subclasses

Group, Scope, VisibilityGroup

Instance Attribute Summary collapse

Attributes inherited from Node

#parent_tree

Instance Method Summary collapse

Methods inherited from Node

#detach, #group_kind, #print, #string

Constructor Details

#initializeTree

Returns a new instance of Tree.



36
37
38
39
# File 'lib/tapioca/rbi/model.rb', line 36

def initialize
  super()
  @nodes = T.let([], T::Array[Node])
end

Instance Attribute Details

#nodesObject (readonly)

Returns the value of attribute nodes.



33
34
35
# File 'lib/tapioca/rbi/model.rb', line 33

def nodes
  @nodes
end

Instance Method Details

#<<(node) ⇒ Object



42
43
44
45
# File 'lib/tapioca/rbi/model.rb', line 42

def <<(node)
  node.parent_tree = self
  @nodes << node
end

#accept_printer(v) ⇒ Object



110
111
112
# File 'lib/tapioca/rbi/printer.rb', line 110

def accept_printer(v)
  v.visit_all(nodes)
end

#empty?Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/tapioca/rbi/model.rb', line 48

def empty?
  nodes.empty?
end

#group_nodes!Object



39
40
41
42
# File 'lib/tapioca/rbi/rewriters/group_nodes.rb', line 39

def group_nodes!
  visitor = Rewriters::GroupNodes.new
  visitor.visit(self)
end

#nest_non_public_methods!Object



46
47
48
49
# File 'lib/tapioca/rbi/rewriters/nest_non_public_methods.rb', line 46

def nest_non_public_methods!
  visitor = Rewriters::NestNonPublicMethods.new
  visitor.visit(self)
end

#nest_singleton_methods!Object



36
37
38
39
# File 'lib/tapioca/rbi/rewriters/nest_singleton_methods.rb', line 36

def nest_singleton_methods!
  visitor = Rewriters::NestSingletonMethods.new
  visitor.visit(self)
end

#oneline?Boolean

Returns:

  • (Boolean)


115
116
117
# File 'lib/tapioca/rbi/printer.rb', line 115

def oneline?
  empty?
end

#sort_nodes!Object



76
77
78
79
# File 'lib/tapioca/rbi/rewriters/sort_nodes.rb', line 76

def sort_nodes!
  visitor = Rewriters::SortNodes.new
  visitor.visit(self)
end