Skip to content

Commit ccbebe9

Browse files
deivid-rodriguezhsbt
authored andcommitted
[rubygems/rubygems] Let :bundler filter raise if not given major versions
Otherwise it doesn't work as expected and it may skip specs. ruby/rubygems@d6af077174
1 parent a3c05f2 commit ccbebe9

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

spec/bundler/support/filters.rb

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
11
# frozen_string_literal: true
22

33
class RequirementChecker < Proc
4-
def self.against(present)
4+
def self.against(present, major_only: false)
5+
present = present.split(".")[0] if major_only
56
provided = Gem::Version.new(present)
67

78
new do |required|
8-
!Gem::Requirement.new(required).satisfied_by?(provided)
9+
requirement = Gem::Requirement.new(required)
10+
11+
if major_only && !requirement.requirements.map(&:last).all? {|version| version.segments.one? }
12+
raise "this filter only supports major versions, but #{required} was given"
13+
end
14+
15+
!requirement.satisfied_by?(provided)
916
end.tap do |checker|
1017
checker.provided = provided
1118
end
@@ -21,7 +28,7 @@ def inspect
2128
RSpec.configure do |config|
2229
config.filter_run_excluding realworld: true
2330

24-
config.filter_run_excluding bundler: RequirementChecker.against(Bundler::VERSION.split(".")[0])
31+
config.filter_run_excluding bundler: RequirementChecker.against(Bundler::VERSION, major_only: true)
2532
config.filter_run_excluding rubygems: RequirementChecker.against(Gem::VERSION)
2633
config.filter_run_excluding ruby_repo: !ENV["GEM_COMMAND"].nil?
2734
config.filter_run_excluding no_color_tty: Gem.win_platform? || !ENV["GITHUB_ACTION"].nil?

0 commit comments

Comments
 (0)