Method: Gel::Environment.activate_gem

Defined in:
lib/gel/environment.rb

.activate_gem(gem, why: nil) ⇒ Object

Raises:

  • (LoadError)


545
546
547
548
549
550
551
552
553
554
555
556
557
558
# File 'lib/gel/environment.rb', line 545

def self.activate_gem(gem, why: nil)
  return if activated_gems[gem.name] && activated_gems[gem.name].version == gem.version
  raise LoadError, "already activated #{gem.name} #{activated_gems[gem.name].version}" if activated_gems[gem.name]

  gem.dependencies.each do |dep, reqs|
    self.gem(dep, *reqs.map { |(qual, ver)| "#{qual} #{ver}" }, why: ["required by #{gem.name} #{gem.version}", *why])
  end

  lib_dirs = gem.require_paths
  @store.prepare gem.name => gem.version

  activated_gems[gem.name] = gem
  $:.concat lib_dirs
end