From: nobu@... Date: 2016-12-12T07:18:29+00:00 Subject: [ruby-core:78597] [Ruby trunk Feature#13025][Feedback] String equality operator does not perform implicit conversion Issue #13025 has been updated by Nobuyoshi Nakada. Tracker changed from Bug to Feature Description updated Status changed from Open to Feedback What documentation do you refer? The document of 2.3 says: > If `obj` is not an instance of String but responds to `to_str`, then the > two strings are compared using case equality `Object#===`. (the method to be called is wrong, though) Do you suggest changing the fallback method? ---------------------------------------- Feature #13025: String equality operator does not perform implicit conversion https://bugs.ruby-lang.org/issues/13025#change-61981 * Author: John Carney * Status: Feedback * Priority: Normal * Assignee: ---------------------------------------- According to the documentation, String#== should perform implicit conversion of non-strings, but this is not happening. ~~~ruby 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: ~~~ruby "text" + SomeClass.new("text") # => "texttext" "text" <=> SomeClass.new("text") # => 0 ~~~ -- https://bugs.ruby-lang.org/ Unsubscribe: