class Bundler::Dsl

def gem(name, *args)

def gem(name, *args)
  options = args.last.is_a?(Hash) ? args.pop : {}
  version = args.last
  keys = :vendored_at, :path, :only, :except, :git, :path, :bundle, :require_as, :tag, :branch, :ref
  unless (invalid = options.keys - keys).empty?
    raise InvalidKey, "Only #{keys.join(", ")} are valid options to #gem. You used #{invalid.join(", ")}"
  end
  if path = options.delete(:vendored_at)
    options[:path] = path
    warn "The :vendored_at option is deprecated. Use :path instead.\nFrom #{caller[0]}"
  end
  options[:only] = _combine_only(options[:only] || options["only"])
  options[:except] = _combine_except(options[:except] || options["except"])
  dep = Dependency.new(name, options.merge(:version => version))
  if options.key?(:bundle) && !options[:bundle]
    dep.source = SystemGemSource.new(@bundle)
  elsif @git || options[:git]
    dep.source = _handle_git_option(name, version, options)
  elsif @directory || options[:path]
    dep.source = _handle_vendored_option(name, version, options)
  end
  @environment.dependencies << dep
end