Class: RBI::Attr
- Inherits:
-
NodeWithComments
- Object
- Node
- NodeWithComments
- RBI::Attr
- Extended by:
- T::Helpers, T::Sig
- Includes:
- Indexable
- Defined in:
- lib/rbi/model.rb,
lib/rbi/index.rb,
lib/rbi/rewriters/merge_trees.rb,
lib/rbi/rewriters/attr_to_methods.rb
Overview
Attributes
Direct Known Subclasses
Instance Attribute Summary collapse
-
#names ⇒ Object
readonly
: Array.
-
#sigs ⇒ Object
readonly
: Array.
-
#visibility ⇒ Object
: Visibility.
Attributes inherited from NodeWithComments
Attributes inherited from Node
Instance Method Summary collapse
-
#compatible_with?(other) ⇒ Boolean
: (Node other) -> bool.
- #convert_to_methods ⇒ Object
- #fully_qualified_names ⇒ Object
-
#index_ids ⇒ Object
: -> Array.
- #initialize(name, names, visibility: Public.new, sigs: [], loc: nil, comments: []) ⇒ Attr constructor
-
#merge_with(other) ⇒ Object
: (Node other) -> void.
Methods inherited from NodeWithComments
#annotations, #version_requirements
Methods inherited from Node
#detach, #parent_conflict_tree, #parent_scope, #print, #rbs_print, #rbs_string, #replace, #satisfies_version?, #string
Constructor Details
#initialize(name, names, visibility: Public.new, sigs: [], loc: nil, comments: []) ⇒ Attr
314 315 316 317 318 319 |
# File 'lib/rbi/model.rb', line 314 def initialize(name, names, visibility: Public.new, sigs: [], loc: nil, comments: []) super(loc: loc, comments: comments) @names = T.let([name, *names], T::Array[Symbol]) @visibility = visibility @sigs = sigs end |
Instance Attribute Details
#names ⇒ Object (readonly)
: Array
305 306 307 |
# File 'lib/rbi/model.rb', line 305 def names @names end |
#sigs ⇒ Object (readonly)
: Array
311 312 313 |
# File 'lib/rbi/model.rb', line 311 def sigs @sigs end |
#visibility ⇒ Object
: Visibility
308 309 310 |
# File 'lib/rbi/model.rb', line 308 def visibility @visibility end |
Instance Method Details
#compatible_with?(other) ⇒ Boolean
: (Node other) -> bool
394 395 396 397 398 399 |
# File 'lib/rbi/rewriters/merge_trees.rb', line 394 def compatible_with?(other) return false unless other.is_a?(Attr) return false unless names == other.names sigs.empty? || other.sigs.empty? || sigs == other.sigs end |
#convert_to_methods ⇒ Object
58 |
# File 'lib/rbi/rewriters/attr_to_methods.rb', line 58 def convert_to_methods; end |
#fully_qualified_names ⇒ Object
322 |
# File 'lib/rbi/model.rb', line 322 def fully_qualified_names; end |
#index_ids ⇒ Object
: -> Array
109 110 111 |
# File 'lib/rbi/index.rb', line 109 def index_ids fully_qualified_names end |
#merge_with(other) ⇒ Object
: (Node other) -> void
403 404 405 406 407 408 409 410 |
# File 'lib/rbi/rewriters/merge_trees.rb', line 403 def merge_with(other) return unless other.is_a?(Attr) super other.sigs.each do |sig| sigs << sig unless sigs.include?(sig) end end |