Ruby の Range は無限大を扱うことができます.
(-Float::INFINITY..Float::INFINITY) #=> -Infinity..Infinity
(0..Float::INFINITY) === 817049871230948719384719274389123874198741 #=> true
(0..Float::INFINITY) === -1 #=> false
# 負の無限大も OK
(-Float::INFINITY..0) === -841794879213748747847321751947365 #=> true
どういう時に使うのかというと,case 文の when 節では ===
でマッチングを行うので,そこで使えます.
a = 10000
case a
when 0 ... 100
"0 〜 99"
when 100 ... 1000
"100 〜 999"
when 1000 .. Float::INFINITY
"1000以上"
else
"負数"
end
#=> "1000以上"