Hoje me deparei com um problema particularmente frustrante. Basicamente, o que estava acontecendo era o seguinte:
pry> Object.text
=> "Foo"
pry> Object.text == "Foo"
=> false
Obviamente, isso não fazia sentido. Depois de um tempo, percebi que pode haver um caractere não imprimível que o irb estava escondendo.
pry> Object.text.dump
=> ""Foo\u{200b}""""
Agora eu podia ver que havia um espaço de largura zero sendo adicionado à string