From: Charles Nutter Date: 2011-01-12T02:09:11+09:00 Subject: [ruby-core:34363] [Ruby 1.9-Feature#4264] General type coercion protocol for Ruby 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