Module: Polisher::Component

Defined in:
lib/polisher/util/component.rb

Defined Under Namespace

Classes: Missing

Class Method Summary collapse

Class Method Details

.require_dependency(polisher_klass, dependency) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/polisher/util/component.rb', line 29

def self.require_dependency(polisher_klass, dependency)
  require dependency
  true
rescue LoadError
  klasses = polisher_klass.split("::")
  desired_namespace = Polisher

  klasses.each do |k|
    desired_namespace.const_set(k, Missing) unless desired_namespace.const_defined?(k, false)
    desired_namespace = "#{desired_namespace.name}::#{k}".constantize
  end
  warn "Failed to require #{dependency}.  Added runtime exception in Polisher::#{polisher_klass}"
end

.verify(polisher_klass, *dependencies) ⇒ Object

class MissingComponent



21
22
23
24
25
26
27
# File 'lib/polisher/util/component.rb', line 21

def self.verify(polisher_klass, *dependencies)
  all_required = dependencies.all? do |dep|
    require_dependency(polisher_klass, dep)
  end

  yield if all_required
end