diff options
Diffstat (limited to 'lib/bundler/dsl.rb')
-rw-r--r-- | lib/bundler/dsl.rb | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/bundler/dsl.rb b/lib/bundler/dsl.rb index c368c533fe..ef5aff09e4 100644 --- a/lib/bundler/dsl.rb +++ b/lib/bundler/dsl.rb @@ -15,7 +15,7 @@ module Bundler VALID_PLATFORMS = Bundler::Dependency::PLATFORM_MAP.keys.freeze VALID_KEYS = %w[group groups git path glob name branch ref tag require submodules - platform platforms type source install_if].freeze + platform platforms type source install_if force_version].freeze attr_reader :gemspecs attr_accessor :dependencies @@ -376,6 +376,10 @@ repo_name ||= user_name opts["source"] = @sources.add_rubygems_source("remotes" => source) end + if opts.key?("force_version") && (r = Gem::Requirement.new(version)) && !r.exact? + raise GemfileError, "Cannot use force_version for inexact version requirement `#{r}`" + end + git_name = (git_names & opts.keys).last if @git_sources[git_name] opts["git"] = @git_sources[git_name].call(opts[git_name]) |