Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions lib/rubygems/version.rb
Original file line number Diff line number Diff line change
Expand Up @@ -368,9 +368,7 @@ def <=>(other)

def canonical_segments
@canonical_segments ||=
_split_segments.map! do |segments|
segments.reverse_each.drop_while {|s| s == 0 }.reverse
end.reduce(&:concat)
_segments.reverse_each.drop_while {|s| s == 0 }.reverse
end

protected
Expand Down
7 changes: 5 additions & 2 deletions test/rubygems/test_gem_requirement.rb
Original file line number Diff line number Diff line change
Expand Up @@ -266,6 +266,9 @@ def test_satisfied_by_eh_good
assert_satisfied_by "3.0.rc2", "< 3.0.1"

assert_satisfied_by "3.0.rc2", "> 0"

assert_satisfied_by "5.0.0.rc2", "~> 5.x"
assert_satisfied_by "5.0.0", "~> 5.x"
end

def test_illformed_requirements
Expand Down Expand Up @@ -401,7 +404,7 @@ def assert_requirement_equal(expected, actual)

def assert_satisfied_by(version, requirement)
assert req(requirement).satisfied_by?(v(version)),
"#{requirement} is satisfied by #{version}"
"Expected #{version} to satisfy #{requirement}"
end

# Refute the assumption that two requirements are equal.
Expand All @@ -414,6 +417,6 @@ def refute_requirement_equal(unexpected, actual)

def refute_satisfied_by(version, requirement)
refute req(requirement).satisfied_by?(v(version)),
"#{requirement} is not satisfied by #{version}"
"Expected #{version} not to satisfy #{requirement}"
end
end
10 changes: 8 additions & 2 deletions test/rubygems/test_gem_version.rb
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ def test_hash
assert_equal v("1.2").hash, v("1.2").hash
refute_equal v("1.2").hash, v("1.3").hash
assert_equal v("1.2").hash, v("1.2.0").hash
assert_equal v("1.2.pre.1").hash, v("1.2.0.pre.1.0").hash
assert_equal v("1.2.0.pre.1").hash, v("1.2.0.pre.1.0").hash
end

def test_initialize
Expand Down Expand Up @@ -157,6 +157,12 @@ def test_spaceship
assert_equal( 1, v("1.8.2.a10") <=> v("1.8.2.a9"))
assert_equal( 0, v("") <=> v("0"))

assert_equal(-1, v("0.beta.1") <=> v("0.0.beta.1"))
assert_equal(-1, v("0.0.beta") <=> v("0.0.beta.1"))
assert_equal( 1, v("0.0.beta") <=> v("0.beta.1"))

assert_equal(-1, v("5.x") <=> v("5.0.0.rc2"))

assert_nil v("1.0") <=> "whatever"
end

Expand Down Expand Up @@ -206,7 +212,7 @@ def test_segments

def test_canonical_segments
assert_equal [1], v("1.0.0").canonical_segments
assert_equal [1, "a", 1], v("1.0.0.a.1.0").canonical_segments
assert_equal [1, 0, 0, "a", 1], v("1.0.0.a.1.0").canonical_segments
assert_equal [1, 2, 3, "pre", 1], v("1.2.3-1").canonical_segments
end

Expand Down