String equality operator does not perform implicit conversion
According to the documentation, String#== should perform implicit conversion of non-strings, but this is not happening.
class SomeClass def initialize(value) @value = value end def to_str @value.to_s end end "text" == SomeClass.new("text") # => false (expected true)
Other operators work as expected:
"text" + SomeClass.new("text") # => "texttext" "text" <=> SomeClass.new("text") # => 0
Updated by nobu (Nobuyoshi Nakada) almost 5 years ago
- Status changed from Open to Feedback
- Description updated (diff)
- Tracker changed from Bug to Feature
What documentation do you refer?
The document of 2.3 says:
objis not an instance of String but responds to
to_str, then the
two strings are compared using case equality
(the method to be called is wrong, though)
Do you suggest changing the fallback method?