Qual é a diferença entre
case item.class
when MyClass
# do something here
when Array
# do something different here
when String
# do a third thing
end
e
case item.class
when MyClass.class
# do something here
when Array.class
# do something different here
when String.class
# do a third thing
end
Por alguma razão, o primeiro deles funciona às vezes e o segundo não, e outras vezes, o segundo funciona e o primeiro não. Por quê? Qual é a maneira "correta" de fazer isso?
MyClass === obj
usa o método Module # === para verificar se obj
é uma instância de MyClass
.