Class: RBI::Tree
- Inherits:
-
NodeWithComments
- Object
- Node
- NodeWithComments
- RBI::Tree
- 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
Direct Known Subclasses
ConflictTree, Group, MergeTree, Scope, ScopeConflict, VisibilityGroup
Instance Attribute Summary collapse
-
#nodes ⇒ Object
readonly
: Array.
Attributes inherited from NodeWithComments
Attributes inherited from Node
Instance Method Summary collapse
-
#<<(node) ⇒ Object
: (Node node) -> void.
-
#add_sig_templates!(with_todo_comment: true) ⇒ Object
: (?with_todo_comment: bool) -> void.
-
#annotate!(annotation, annotate_scopes: false, annotate_properties: false) ⇒ Object
: (String annotation, ?annotate_scopes: bool, ?annotate_properties: bool) -> void.
-
#deannotate!(annotation) ⇒ Object
: (String annotation) -> void.
-
#empty? ⇒ Boolean
: -> bool.
-
#filter_versions!(version) ⇒ Object
: (Gem::Version version) -> void.
-
#flatten_singleton_methods! ⇒ Object
: -> void.
-
#flatten_visibilities! ⇒ Object
: -> void.
-
#group_nodes! ⇒ Object
: -> void.
-
#index ⇒ Object
: -> Index.
-
#initialize(loc: nil, comments: [], &block) ⇒ Tree
constructor
: (?loc: Loc?, ?comments: Array) ?{ (Tree node) -> void } -> void.
-
#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.
-
#nest_non_public_members! ⇒ Object
: -> void.
-
#nest_singleton_methods! ⇒ Object
: -> void.
-
#nest_top_level_members! ⇒ Object
: -> void.
-
#replace_attributes_with_methods! ⇒ Object
: -> void.
-
#sort_nodes! ⇒ Object
: -> void.
-
#translate_rbs_sigs! ⇒ Object
: -> void.
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
#nodes ⇒ Object (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
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 |
#index ⇒ Object
: -> 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 |