diff options
| author | David RodrÃguez <deivid.rodriguez@riseup.net> | 2025-02-11 09:48:17 +0100 |
|---|---|---|
| committer | Hiroshi SHIBATA <hsbt@ruby-lang.org> | 2025-02-14 16:13:27 +0900 |
| commit | ccbebe9979b53352a0a11f0f5dd00ec3abab3b5a (patch) | |
| tree | 07452e390569a28ec6cf7900cd95e34cda26ca5b | |
| parent | a3c05f27c30c04c6ebf69a63b31c0fa5e1520ecd (diff) | |
[rubygems/rubygems] Let `:bundler` filter raise if not given major versions
Otherwise it doesn't work as expected and it may skip specs.
https://github.com/rubygems/rubygems/commit/d6af077174
| -rw-r--r-- | spec/bundler/support/filters.rb | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/spec/bundler/support/filters.rb b/spec/bundler/support/filters.rb index f52cb02588..663b7fa44b 100644 --- a/spec/bundler/support/filters.rb +++ b/spec/bundler/support/filters.rb @@ -1,11 +1,18 @@ # frozen_string_literal: true class RequirementChecker < Proc - def self.against(present) + def self.against(present, major_only: false) + present = present.split(".")[0] if major_only provided = Gem::Version.new(present) new do |required| - !Gem::Requirement.new(required).satisfied_by?(provided) + requirement = Gem::Requirement.new(required) + + if major_only && !requirement.requirements.map(&:last).all? {|version| version.segments.one? } + raise "this filter only supports major versions, but #{required} was given" + end + + !requirement.satisfied_by?(provided) end.tap do |checker| checker.provided = provided end @@ -21,7 +28,7 @@ end RSpec.configure do |config| config.filter_run_excluding realworld: true - config.filter_run_excluding bundler: RequirementChecker.against(Bundler::VERSION.split(".")[0]) + config.filter_run_excluding bundler: RequirementChecker.against(Bundler::VERSION, major_only: true) config.filter_run_excluding rubygems: RequirementChecker.against(Gem::VERSION) config.filter_run_excluding ruby_repo: !ENV["GEM_COMMAND"].nil? config.filter_run_excluding no_color_tty: Gem.win_platform? || !ENV["GITHUB_ACTION"].nil? |
