module Polisher::Component

Public Class Methods

require_dependency(polisher_klass, dependency) click to toggle source
# 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) { || ... } click to toggle source
# 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