Module: Tapioca::Trackers::Mixin

Extended by:
T::Sig
Defined in:
lib/tapioca/trackers/mixin.rb

Defined Under Namespace

Classes: Type

Class Method Summary collapse

Class Method Details

.mixin_locations_for(constant) ⇒ Object



35
36
37
38
39
40
41
# File 'lib/tapioca/trackers/mixin.rb', line 35

def self.mixin_locations_for(constant)
  @mixin_map[constant] ||= {
    Type::Prepend => {}.compare_by_identity,
    Type::Include => {}.compare_by_identity,
    Type::Extend => {}.compare_by_identity,
  }
end

.register(constant, mod, mixin_type, locations) ⇒ Object



27
28
29
30
31
32
# File 'lib/tapioca/trackers/mixin.rb', line 27

def self.register(constant, mod, mixin_type, locations)
  locations ||= []
  locations.map!(&:absolute_path).uniq!
  locs = mixin_locations_for(constant)
  locs.fetch(mixin_type).store(mod, T.cast(locations, T::Array[String]))
end