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