Sam Roberts wrote: > I can add as many methods as I want to String, I can even proxy every > single method in it using #undefined_method (which is as duck-typed as > you can get) but I still don't think a String object will ever "== => > true" to my class. > > Am I right about this? You need to actually define to_str() (proxying it is not enough as far as I can tell) and to implement ==: "foo" == Class.new { def to_str() end; def ==(other) true end }.new # => true