Class: RBI::NodeWithComments
- Extended by:
- T::Helpers
- Defined in:
- lib/rbi/model.rb,
lib/rbi/rewriters/merge_trees.rb,
lib/rbi/rewriters/filter_versions.rb
Direct Known Subclasses
Attr, Const, Helper, Method, Mixin, Param, RequiresAncestor, Send, Sig, SigParam, TStructField, Tree, TypeMember, Visibility
Instance Attribute Summary collapse
Attributes inherited from Node
Instance Method Summary collapse
-
#annotations ⇒ Object
: -> Array.
-
#initialize(loc: nil, comments: []) ⇒ NodeWithComments
constructor
: (?loc: Loc?, ?comments: Array) -> void.
-
#merge_with(other) ⇒ Object
: (Node other) -> void.
-
#version_requirements ⇒ Object
: -> Array.
Methods inherited from Node
#compatible_with?, #detach, #parent_conflict_tree, #parent_scope, #print, #rbs_print, #rbs_string, #replace, #satisfies_version?, #string
Constructor Details
#initialize(loc: nil, comments: []) ⇒ NodeWithComments
: (?loc: Loc?, ?comments: Array) -> void
99 100 101 102 |
# File 'lib/rbi/model.rb', line 99 def initialize(loc: nil, comments: []) super(loc: loc) @comments = comments end |
Instance Attribute Details
Instance Method Details
#annotations ⇒ Object
: -> Array
105 106 107 108 109 |
# File 'lib/rbi/model.rb', line 105 def annotations comments .select { |comment| comment.text.start_with?("@") } .map { |comment| T.must(comment.text[1..]) } end |
#merge_with(other) ⇒ Object
: (Node other) -> void
303 304 305 306 307 308 309 |
# File 'lib/rbi/rewriters/merge_trees.rb', line 303 def merge_with(other) return unless other.is_a?(NodeWithComments) other.comments.each do |comment| comments << comment unless comments.include?(comment) end end |
#version_requirements ⇒ Object
: -> Array
101 102 103 104 105 106 107 108 |
# File 'lib/rbi/rewriters/filter_versions.rb', line 101 def version_requirements annotations.select do |annotation| annotation.start_with?(Rewriters::FilterVersions::VERSION_PREFIX) end.map do |annotation| versions = annotation.delete_prefix(Rewriters::FilterVersions::VERSION_PREFIX).split(/, */) Gem::Requirement.new(versions) end end |