diff options
| -rw-r--r-- | lib/bundler.rb | 5 | ||||
| -rw-r--r-- | lib/bundler/match_metadata.rb | 20 |
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 |
