Acabei de começar a aprender Ruby e Ruby on Rails e me deparei com um código de validação que usa intervalos:
validates_inclusion_of :age, :in => 21..99
validates_exclusion_of :age, :in => 0...21, :message => "Sorry, you must be over 21"
A princípio, pensei que a diferença estava na inclusão de endpoints, mas nos documentos da API que examinei, não parecia importar se era ..
ou ...
: sempre incluía os endpoints.
No entanto, fiz alguns testes no irb e pareceu indicar que ..
inclui ambos os pontos de extremidade, enquanto ...
incluía apenas o limite inferior, mas não o superior. Isso está correto?
(1..10).include? 10 #=> true
e(1...10).include? 10 #=> false