File tree Expand file tree Collapse file tree 5 files changed +40
-8
lines changed
Expand file tree Collapse file tree 5 files changed +40
-8
lines changed Original file line number Diff line number Diff line change @@ -2653,6 +2653,8 @@ def validate_permissions
26532653
26542654 def version = ( version )
26552655 @version = Gem ::Version . create ( version )
2656+ return if @version . nil?
2657+
26562658 # skip to set required_ruby_version when pre-released rubygems.
26572659 # It caused to raise CircularDependencyError
26582660 if @version . prerelease? && ( @name . nil? || @name . strip != "rubygems" )
Original file line number Diff line number Diff line change @@ -171,9 +171,7 @@ def version
171171 # True if the +version+ string matches RubyGems' requirements.
172172
173173 def self . correct? ( version )
174- unless Gem ::Deprecate . skip
175- warn "nil versions are discouraged and will be deprecated in Rubygems 4" if version . nil?
176- end
174+ nil_versions_are_discouraged! if version . nil?
177175
178176 !!( version . to_s =~ ANCHORED_VERSION_PATTERN )
179177 end
@@ -190,6 +188,8 @@ def self.create(input)
190188 if self === input # check yourself before you wreck yourself
191189 input
192190 elsif input . nil?
191+ nil_versions_are_discouraged!
192+
193193 nil
194194 else
195195 new input
@@ -206,6 +206,14 @@ def self.new(version) # :nodoc:
206206 @@all [ version ] ||= super
207207 end
208208
209+ def self . nil_versions_are_discouraged!
210+ unless Gem ::Deprecate . skip
211+ warn "nil versions are discouraged and will be deprecated in Rubygems 4"
212+ end
213+ end
214+
215+ private_class_method :nil_versions_are_discouraged!
216+
209217 ##
210218 # Constructs a Version from the +version+ string. A version string is a
211219 # series of digits or ASCII letters separated by dots.
Original file line number Diff line number Diff line change @@ -129,7 +129,9 @@ def test_satisfied_by_eh_bang_equal
129129 assert_satisfied_by "1.3" , r
130130
131131 assert_raise ArgumentError do
132- assert_satisfied_by nil , r
132+ Gem ::Deprecate . skip_during do
133+ assert_satisfied_by nil , r
134+ end
133135 end
134136 end
135137
@@ -141,7 +143,9 @@ def test_satisfied_by_eh_blank
141143 refute_satisfied_by "1.3" , r
142144
143145 assert_raise ArgumentError do
144- assert_satisfied_by nil , r
146+ Gem ::Deprecate . skip_during do
147+ assert_satisfied_by nil , r
148+ end
145149 end
146150 end
147151
@@ -153,7 +157,9 @@ def test_satisfied_by_eh_equal
153157 refute_satisfied_by "1.3" , r
154158
155159 assert_raise ArgumentError do
156- assert_satisfied_by nil , r
160+ Gem ::Deprecate . skip_during do
161+ assert_satisfied_by nil , r
162+ end
157163 end
158164 end
159165
Original file line number Diff line number Diff line change @@ -1220,6 +1220,15 @@ def test_initialize_prerelease_version_before_name
12201220 assert_equal "1.0.0.dev" , spec . version . to_s
12211221 end
12221222
1223+ def test_initialize_nil_version
1224+ expected = "nil versions are discouraged and will be deprecated in Rubygems 4\n "
1225+ actual_stdout , actual_stderr = capture_output do
1226+ Gem ::Specification . new . version = nil
1227+ end
1228+ assert_empty actual_stdout
1229+ assert_equal ( expected , actual_stderr )
1230+ end
1231+
12231232 def test__dump
12241233 @a2 . platform = Gem ::Platform . local
12251234 @a2 . instance_variable_set :@original_platform , "old_platform"
Original file line number Diff line number Diff line change @@ -32,8 +32,15 @@ def test_bump_one_level
3232 def test_class_create
3333 real = Gem ::Version . new ( 1.0 )
3434
35- assert_same real , Gem ::Version . create ( real )
36- assert_nil Gem ::Version . create ( nil )
35+ assert_same real , Gem ::Version . create ( real )
36+
37+ expected = "nil versions are discouraged and will be deprecated in Rubygems 4\n "
38+ actual_stdout , actual_stderr = capture_output do
39+ assert_nil Gem ::Version . create ( nil )
40+ end
41+ assert_empty actual_stdout
42+ assert_equal ( expected , actual_stderr )
43+
3744 assert_equal v ( "5.1" ) , Gem ::Version . create ( "5.1" )
3845
3946 ver = "1.1" . freeze
You can’t perform that action at this time.
0 commit comments