Class: Avm::Registry::FromGems

Inherits:
Object
  • Object
show all
Defined in:
lib/avm/registry/from_gems.rb

Instance Method Summary collapse

Instance Method Details

#availableObject



10
11
12
# File 'lib/avm/registry/from_gems.rb', line 10

def available
  registered_modules.reject(&:abstract?)
end

#class_detect(_klass, _detect_args) ⇒ Object



14
15
16
# File 'lib/avm/registry/from_gems.rb', line 14

def class_detect(_klass, _detect_args)
  raise_abstract_method __method__
end

#detect(*registered_initialize_args) ⇒ Object



18
19
20
21
# File 'lib/avm/registry/from_gems.rb', line 18

def detect(*registered_initialize_args)
  detect_optional(*registered_initialize_args) ||
    raise_not_found(*registered_initialize_args)
end

#detect_optional(*registered_initialize_args) ⇒ Object



23
24
25
26
# File 'lib/avm/registry/from_gems.rb', line 23

def detect_optional(*registered_initialize_args)
  available.reverse.lazy
    .map { |klass| class_detect(klass, registered_initialize_args) }.find(&:present?)
end

#provider_module_suffixObject



28
29
30
# File 'lib/avm/registry/from_gems.rb', line 28

def provider_module_suffix
  "#{module_suffix}::Provider"
end

#single_module_suffixObject



32
33
34
# File 'lib/avm/registry/from_gems.rb', line 32

def single_module_suffix
  "#{module_suffix}::Base"
end

#to_sObject



36
37
38
# File 'lib/avm/registry/from_gems.rb', line 36

def to_s
  "#{self.class}[#{module_suffix}]"
end

#valid_registered_module?(a_module) ⇒ Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/avm/registry/from_gems.rb', line 40

def valid_registered_module?(a_module)
  a_module.is_a?(::Class) && !a_module.abstract?
end