Faixas de Ruby e limites superiores

Se você quiser obter o valor máximo de Range em Ruby, não use Range # last.

O intervalo do método # último retorna o ponto limite superior para qualquer intervalo:

(1..5).last #=> 5
(1...5).last #=> 5

Se você usar 1.8.7 ou posterior, precisará usar o próximo snippet:

range.exclude_end? ? range.last - 1 : range.last

Se você usar 1.9.xe superior, basta usar o método Range # max.