class Fabrique::GemLoader
Public Class Methods
new(gem_definitions)
click to toggle source
# File lib/fabrique/gem_loader.rb, line 5 def initialize(gem_definitions) @gem_defs = gem_definitions deps = @gem_defs.collect(&:dependency).reject { |x| not x.matching_specs.empty? } @gem_set = Gem::RequestSet.new(*deps) end
Public Instance Methods
load_gems()
click to toggle source
# File lib/fabrique/gem_loader.rb, line 11 def load_gems require "rubygems/dependency_installer" @gem_set.resolve specs = @gem_set.install(Gem::DependencyInstaller::DEFAULT_OPTIONS.merge(document: [])) specs.each do |spec| spec.activate end @gem_defs.collect(&:required_as).each { |x| require x } rescue Gem::DependencyResolutionError, Gem::UnsatisfiableDependencyError => e raise Fabrique::GemDependencyError.new(e.message) end