module Kernel

def gem(gem_name, *requirements) # :doc:

:doc:
def gem(gem_name, *requirements) # :doc:
  skip_list = (ENV["GEM_SKIP"] || "").split(/:/)
  raise Gem::LoadError, "skipping #{gem_name}" if skip_list.include? gem_name
  if gem_name.is_a? Gem::Dependency
    unless Gem::Deprecate.skip
      warn "#{Gem.location_of_caller.join ":"}:Warning: Kernel.gem no longer "\
        "accepts a Gem::Dependency object, please pass the name "\
        "and requirements directly"
    end
    requirements = gem_name.requirement
    gem_name = gem_name.name
  end
  dep = Gem::Dependency.new(gem_name, *requirements)
  loaded = Gem.loaded_specs[gem_name]
  return false if loaded && dep.matches_spec?(loaded)
  spec = dep.to_spec
  if spec
    if Gem::LOADED_SPECS_MUTEX.owned?
      spec.activate
    else
      Gem::LOADED_SPECS_MUTEX.synchronize { spec.activate }
    end
  end
end