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.