Optimize Version#<=>
This commit is contained in:
parent
49682e854d
commit
466a32df02
@ -11,6 +11,8 @@ class VersionElement
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
ZERO = VersionElement.new(0)
|
||||||
|
|
||||||
def <=>(other)
|
def <=>(other)
|
||||||
return unless other.is_a? VersionElement
|
return unless other.is_a? VersionElement
|
||||||
return -1 if string? and other.numeric?
|
return -1 if string? and other.numeric?
|
||||||
@ -77,11 +79,12 @@ class Version
|
|||||||
return -1 if not head? and other.head?
|
return -1 if not head? and other.head?
|
||||||
|
|
||||||
stuple, otuple = to_a, other.to_a
|
stuple, otuple = to_a, other.to_a
|
||||||
|
slen, olen = stuple.length, otuple.length
|
||||||
|
|
||||||
max = [stuple.length, otuple.length].max
|
max = [slen, olen].max
|
||||||
|
|
||||||
stuple.fill(VersionElement.new(0), stuple.length, max - stuple.length)
|
stuple.fill(VersionElement::ZERO, slen, max - slen)
|
||||||
otuple.fill(VersionElement.new(0), otuple.length, max - otuple.length)
|
otuple.fill(VersionElement::ZERO, olen, max - olen)
|
||||||
|
|
||||||
stuple <=> otuple
|
stuple <=> otuple
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user