Por que um operador Flip-Flop inclui a segunda condição?

O código a seguir está usando um operador de flip-flop.

(1..10).each {|x| print "#{x}," if x==3..x==5 }

Por que os resultados3,4,5?

Eu acho que deveria ser3,4.

Como mencionado em um tutorial, essa expressão se torna verdadeira quandox == 3e continua a ser verdade atéx == 5. Como poderia '5' ser impresso se for falso? Alguém poderia por favor esclarecer isso para mim?

questionAnswers(6)

yourAnswerToTheQuestion