summaryrefslogtreecommitdiff
path: root/lib/bundler/dsl.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/bundler/dsl.rb')
-rw-r--r--lib/bundler/dsl.rb6
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])