Issue #4264 has been updated by Charles Nutter.
Other thoughts after talking with tenderlove:
1. double-dispatched protocol
The #to protocol could double-dispatch against the class, as in:
def to(type)
type.coerce(self)
end
This would allow defining coercions on the target class, rather than on the #to method. It does incur the hit of doing a double-dispatch though.
2. symbolic types
Allowing a symbol could make it possible to define coercions based on name alone, such as obj.to :yaml or obj.to :json. A default impl of coerce could be added to Symbol:
class Symbol
def coerce(obj)
obj.send "to_#{self}"
end
end
Given the double-dipatched protocol, the above may be left for users to implement, but it serves a similar purpose to the now-standard Symbol#to_proc.
----------------------------------------
http://redmine.ruby-lang.org/issues/show/4264
----------------------------------------
http://redmine.ruby-lang.org