summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/bundler.rb5
-rw-r--r--lib/bundler/match_metadata.rb20
2 files changed, 23 insertions, 2 deletions
diff --git a/lib/bundler.rb b/lib/bundler.rb
index 12dde90fc5..c686b106c7 100644
--- a/lib/bundler.rb
+++ b/lib/bundler.rb
@@ -244,6 +244,11 @@ module Bundler
Bundler.settings[:deployment]
end
+ def overrides
+ return [] unless defined?(@definition) && @definition
+ @definition.overrides
+ end
+
def locked_gems
@locked_gems ||=
if defined?(@definition) && @definition
diff --git a/lib/bundler/match_metadata.rb b/lib/bundler/match_metadata.rb
index 6fd2994a85..75b0e4357c 100644
--- a/lib/bundler/match_metadata.rb
+++ b/lib/bundler/match_metadata.rb
@@ -7,11 +7,11 @@ module Bundler
end
def matches_current_ruby?
- @required_ruby_version.satisfied_by?(Gem.ruby_version)
+ effective_required_ruby_version.satisfied_by?(Gem.ruby_version)
end
def matches_current_rubygems?
- @required_rubygems_version.satisfied_by?(Gem.rubygems_version)
+ effective_required_rubygems_version.satisfied_by?(Gem.rubygems_version)
end
def expanded_dependencies
@@ -26,5 +26,21 @@ module Bundler
Gem::Dependency.new("#{name}\0", requirement)
end
+
+ private
+
+ def effective_required_ruby_version
+ apply_metadata_override(@required_ruby_version, :required_ruby_version)
+ end
+
+ def effective_required_rubygems_version
+ apply_metadata_override(@required_rubygems_version, :required_rubygems_version)
+ end
+
+ def apply_metadata_override(requirement, field)
+ override = Override.find_for(Bundler.overrides, name, field)
+ return requirement unless override
+ override.apply_to(requirement)
+ end
end
end