“Foo” == “Foo”! = Verdadeiro (caracteres não imprimíveis FTL)

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