Class: RBI::Mixin Abstract

Inherits:
NodeWithComments show all
Defined in:
lib/rbi/model.rb,
lib/rbi/rewriters/merge_trees.rb

Overview

This class is abstract.

Direct Known Subclasses

Extend, Include, MixesInClassMethods

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, #comments?, #merge_with, #version_requirements

Methods inherited from Node

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

Constructor Details

#initialize(name, names, loc: nil, comments: nil) ⇒ Mixin

: (String name, Array names, ?loc: Loc?, ?comments: Array?) -> void



848
849
850
851
# File 'lib/rbi/model.rb', line 848

def initialize(name, names, loc: nil, comments: nil)
  super(loc: loc, comments: comments)
  @names = [name, *names].map(&:to_s) #: Array[String]
end

Instance Attribute Details

#namesObject (readonly)

: Array



845
846
847
# File 'lib/rbi/model.rb', line 845

def names
  @names
end

Instance Method Details

#compatible_with?(other) ⇒ Boolean

: (Node other) -> bool

Returns:

  • (Boolean)


551
552
553
# File 'lib/rbi/rewriters/merge_trees.rb', line 551

def compatible_with?(other)
  other.is_a?(Mixin) && names == other.names
end