Class: RBI::Tree

Inherits:
NodeWithComments show all
Defined in:
lib/rbi/index.rb,
lib/rbi/model.rb,
lib/rbi/rewriters/annotate.rb,
lib/rbi/rewriters/deannotate.rb,
lib/rbi/rewriters/sort_nodes.rb,
lib/rbi/rewriters/group_nodes.rb,
lib/rbi/rewriters/merge_trees.rb,
lib/rbi/rewriters/attr_to_methods.rb,
lib/rbi/rewriters/filter_versions.rb,
lib/rbi/rewriters/add_sig_templates.rb,
lib/rbi/rewriters/translate_rbs_sigs.rb,
lib/rbi/rewriters/flatten_visibilities.rb,
lib/rbi/rewriters/nest_singleton_methods.rb,
lib/rbi/rewriters/nest_top_level_members.rb,
lib/rbi/rewriters/nest_non_public_members.rb,
lib/rbi/rewriters/flatten_singleton_methods.rb

Instance Attribute Summary collapse

Attributes inherited from NodeWithComments

#comments

Attributes inherited from Node

#loc, #parent_tree

Instance Method Summary collapse

Methods inherited from NodeWithComments

#annotations, #merge_with, #version_requirements

Methods inherited from Node

#compatible_with?, #detach, #merge_with, #parent_conflict_tree, #parent_scope, #print, #rbs_print, #rbs_string, #replace, #satisfies_version?, #string

Constructor Details

#initialize(loc: nil, comments: [], &block) ⇒ Tree

: (?loc: Loc?, ?comments: Array) ?{ (Tree node) -> void } -> void



119
120
121
122
123
# File 'lib/rbi/model.rb', line 119

def initialize(loc: nil, comments: [], &block)
  super(loc: loc, comments: comments)
  @nodes = [] #: Array[Node]
  block&.call(self)
end

Instance Attribute Details

#nodesObject (readonly)

: Array



116
117
118
# File 'lib/rbi/model.rb', line 116

def nodes
  @nodes
end

Instance Method Details

#<<(node) ⇒ Object

: (Node node) -> void



126
127
128
129
# File 'lib/rbi/model.rb', line 126

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

#add_sig_templates!(with_todo_comment: true) ⇒ Object

: (?with_todo_comment: bool) -> void



63
64
65
66
# File 'lib/rbi/rewriters/add_sig_templates.rb', line 63

def add_sig_templates!(with_todo_comment: true)
  visitor = Rewriters::AddSigTemplates.new(with_todo_comment: with_todo_comment)
  visitor.visit(self)
end

#annotate!(annotation, annotate_scopes: false, annotate_properties: false) ⇒ Object

: (String annotation, ?annotate_scopes: bool, ?annotate_properties: bool) -> void



46
47
48
49
50
51
52
53
# File 'lib/rbi/rewriters/annotate.rb', line 46

def annotate!(annotation, annotate_scopes: false, annotate_properties: false)
  visitor = Rewriters::Annotate.new(
    annotation,
    annotate_scopes: annotate_scopes,
    annotate_properties: annotate_properties,
  )
  visitor.visit(self)
end

#deannotate!(annotation) ⇒ Object

: (String annotation) -> void



38
39
40
41
# File 'lib/rbi/rewriters/deannotate.rb', line 38

def deannotate!(annotation)
  visitor = Rewriters::Deannotate.new(annotation)
  visitor.visit(self)
end

#empty?Boolean

: -> bool

Returns:

  • (Boolean)


132
133
134
# File 'lib/rbi/model.rb', line 132

def empty?
  nodes.empty?
end

#filter_versions!(version) ⇒ Object

: (Gem::Version version) -> void



113
114
115
116
# File 'lib/rbi/rewriters/filter_versions.rb', line 113

def filter_versions!(version)
  visitor = Rewriters::FilterVersions.new(version)
  visitor.visit(self)
end

#flatten_singleton_methods!Object

: -> void



58
59
60
61
# File 'lib/rbi/rewriters/flatten_singleton_methods.rb', line 58

def flatten_singleton_methods!
  visitor = Rewriters::FlattenSingletonMethods.new
  visitor.visit(self)
end

#flatten_visibilities!Object

: -> void



57
58
59
60
# File 'lib/rbi/rewriters/flatten_visibilities.rb', line 57

def flatten_visibilities!
  visitor = Rewriters::FlattenVisibilities.new
  visitor.visit(self)
end

#group_nodes!Object

: -> void



78
79
80
81
# File 'lib/rbi/rewriters/group_nodes.rb', line 78

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

#indexObject

: -> Index



64
65
66
# File 'lib/rbi/index.rb', line 64

def index
  Index.index(self)
end

#merge(other, left_name: "left", right_name: "right", keep: Rewriters::Merge::Keep::NONE) ⇒ Object

: (Tree other, ?left_name: String, ?right_name: String, ?keep: Rewriters::Merge::Keep) -> MergeTree



314
315
316
# File 'lib/rbi/rewriters/merge_trees.rb', line 314

def merge(other, left_name: "left", right_name: "right", keep: Rewriters::Merge::Keep::NONE)
  Rewriters::Merge.merge_trees(self, other, left_name: left_name, right_name: right_name, keep: keep)
end

#nest_non_public_members!Object

: -> void



43
44
45
46
# File 'lib/rbi/rewriters/nest_non_public_members.rb', line 43

def nest_non_public_members!
  visitor = Rewriters::NestNonPublicMembers.new
  visitor.visit(self)
end

#nest_singleton_methods!Object

: -> void



33
34
35
36
# File 'lib/rbi/rewriters/nest_singleton_methods.rb', line 33

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

#nest_top_level_members!Object

: -> void



60
61
62
63
# File 'lib/rbi/rewriters/nest_top_level_members.rb', line 60

def nest_top_level_members!
  visitor = Rewriters::NestTopLevelMembers.new
  visitor.visit(self)
end

#replace_attributes_with_methods!Object

: -> void



50
51
52
53
# File 'lib/rbi/rewriters/attr_to_methods.rb', line 50

def replace_attributes_with_methods!
  visitor = Rewriters::AttrToMethods.new
  visitor.visit(self)
end

#sort_nodes!Object

: -> void



118
119
120
121
# File 'lib/rbi/rewriters/sort_nodes.rb', line 118

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

#translate_rbs_sigs!Object

: -> void



82
83
84
85
# File 'lib/rbi/rewriters/translate_rbs_sigs.rb', line 82

def translate_rbs_sigs!
  visitor = Rewriters::TranslateRBSSigs.new
  visitor.visit(self)
end