Class: Avm::Registry::Base

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

Instance Method Summary collapse

Instance Method Details

#detect(*registered_initialize_args) ⇒ Object



12
13
14
15
16
# File 'lib/avm/registry/base.rb', line 12

def detect(*registered_initialize_args)
  detect_optional(*registered_initialize_args) ||
    raise("No registered module valid for #{registered_initialize_args}" \
      " (Module suffix: #{module_suffix}, Available: #{registered_modules.join(', ')})")
end

#detect_optional(*registered_initialize_args) ⇒ Object



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

def detect_optional(*registered_initialize_args)
  registered_modules.reverse.lazy.map { |klass| klass.new(*registered_initialize_args) }
                    .find(&:valid?)
end

#provider_module_suffixObject



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

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

#single_module_suffixObject



27
28
29
# File 'lib/avm/registry/base.rb', line 27

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

#to_sObject



31
32
33
# File 'lib/avm/registry/base.rb', line 31

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

#valid_registered_module?(a_module) ⇒ Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/avm/registry/base.rb', line 35

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