mirror of
https://github.com/hkalexling/Mango.git
synced 2025-08-03 03:15:31 -04:00
Use BigInt when sorting filenames (#22)
This commit is contained in:
parent
1a0c3d81ce
commit
d58c83fbd8
@ -25,4 +25,12 @@ describe "compare_alphanumerically" do
|
|||||||
compare_alphanumerically a, b
|
compare_alphanumerically a, b
|
||||||
}.should eq ary
|
}.should eq ary
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# https://github.com/hkalexling/Mango/issues/22
|
||||||
|
it "handles numbers larger than Int32" do
|
||||||
|
ary = ["14410155591588.jpg", "21410155591588.png", "104410155591588.jpg"]
|
||||||
|
ary.reverse.sort {|a, b|
|
||||||
|
compare_alphanumerically a, b
|
||||||
|
}.should eq ary
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
require "big"
|
||||||
|
|
||||||
IMGS_PER_PAGE = 5
|
IMGS_PER_PAGE = 5
|
||||||
|
|
||||||
macro layout(name)
|
macro layout(name)
|
||||||
@ -56,7 +58,7 @@ def compare_alphanumerically(c, d)
|
|||||||
return -1 if a.nil?
|
return -1 if a.nil?
|
||||||
return 1 if b.nil?
|
return 1 if b.nil?
|
||||||
if is_numeric(a) && is_numeric(b)
|
if is_numeric(a) && is_numeric(b)
|
||||||
compare = a.to_i <=> b.to_i
|
compare = a.to_big_i <=> b.to_big_i
|
||||||
return compare if compare != 0
|
return compare if compare != 0
|
||||||
else
|
else
|
||||||
compare = a <=> b
|
compare = a <=> b
|
||||||
|
Loading…
x
Reference in New Issue
Block a user