Ruby 'Range.last' não fornece o último valor. Por quê?

Ao usar a notação de ponto triplo em um objeto Range ruby, eu recebo o seguinte:

(0...5).each{|n| p n}
0
1
2
3
4

Quando eu uso o método 'last' eu recebo:

(0...5).last
 => 5 

Eu teria esperado 4

Isso é um bug? Ou há algo que eu não entendo sobre o conceito de um objeto Range?

questionAnswers(2)

yourAnswerToTheQuestion