Class: RBI::Attr Abstract
- Inherits:
-
NodeWithComments
- Object
- Node
- NodeWithComments
- RBI::Attr
- 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
This class is abstract.
Direct Known Subclasses
Instance Attribute Summary collapse
-
#names ⇒ Object
readonly
: Array.
-
#sigs ⇒ Object
: -> 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
abstract
: -> Array.
-
#fully_qualified_names ⇒ Object
abstract
: -> Array.
-
#index_ids ⇒ Object
: -> Array.
- #initialize(name, names, visibility: Public::DEFAULT, sigs: nil, loc: nil, comments: nil) ⇒ Attr constructor
-
#merge_with(other) ⇒ Object
: (Node other) -> void.
-
#sigs? ⇒ Boolean
: -> bool.
Methods inherited from NodeWithComments
#annotations, #comments?, #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::DEFAULT, sigs: nil, loc: nil, comments: nil) ⇒ Attr
353 354 355 356 357 358 |
# File 'lib/rbi/model.rb', line 353 def initialize(name, names, visibility: Public::DEFAULT, sigs: nil, loc: nil, comments: nil) super(loc: loc, comments: comments) @names = [name, *names] #: Array[Symbol] @visibility = visibility @sigs = sigs #: Array[Sig]? end |
Instance Attribute Details
#names ⇒ Object (readonly)
: Array
327 328 329 |
# File 'lib/rbi/model.rb', line 327 def names @names end |
#visibility ⇒ Object
: Visibility
330 331 332 |
# File 'lib/rbi/model.rb', line 330 def visibility @visibility end |
Instance Method Details
#compatible_with?(other) ⇒ Boolean
: (Node other) -> bool
420 421 422 423 424 425 |
# File 'lib/rbi/rewriters/merge_trees.rb', line 420 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
This method is abstract.
: -> Array
59 |
# File 'lib/rbi/rewriters/attr_to_methods.rb', line 59 def convert_to_methods = raise NotImplementedError, "Abstract method called" |
#fully_qualified_names ⇒ Object
This method is abstract.
: -> Array
362 |
# File 'lib/rbi/model.rb', line 362 def fully_qualified_names = raise NotImplementedError, "Abstract method called" |
#index_ids ⇒ Object
: -> Array
104 105 106 |
# File 'lib/rbi/index.rb', line 104 def index_ids fully_qualified_names end |
#merge_with(other) ⇒ Object
: (Node other) -> void
429 430 431 432 433 434 435 436 |
# File 'lib/rbi/rewriters/merge_trees.rb', line 429 def merge_with(other) return unless other.is_a?(Attr) super other.sigs.each do |sig| sigs << sig unless sigs.include?(sig) end end |
#sigs? ⇒ Boolean
: -> bool
338 339 340 |
# File 'lib/rbi/model.rb', line 338 def sigs? !@sigs.nil? && !@sigs.empty? end |