From: Tomas Matousek Date: 2009-07-31T10:18:57+09:00 Subject: [ruby-core:24636] Re: [Bug #1844] Immediates Should Not Respond to :dup What about adding Kernel#dup? method that is an alias of Kernel#dup: a class that cannot be duplicated would implement dup that throws an exception and dup? that returns nil or self? Tomas -----Original Message----- From: David A. Black [mailto:dblack@rubypal.com] Sent: Thursday, July 30, 2009 6:10 PM To: ruby-core@ruby-lang.org Subject: [ruby-core:24635] Re: [Bug #1844] Immediates Should Not Respond to :dup Hi -- On Fri, 31 Jul 2009, Shyouhei Urabe wrote: > Issue #1844 has been updated by Shyouhei Urabe. > > > Anyway when getting back to :dup story, I'm not against to make it > more "reliable". But there seems to be several menu here: > > * respond_to?(:dup) to be false and calling dup to raise exception. > Runpaint's original suggestion. > * respond_to?(:dup) to be true and dup to return self. Jeremy's idea. My own difficulty with Jeremy's idea is that 1 isn't a duplicate of 1. In general, if x.dup returns x, it's not returning a duplicate of x, so the method name becomes problematic. In other words, I'm not sure about having dup be a no-op. On the other hand, I would very much *not* like to start seeing #respond_to? every time dup is used. David -- David A. Black / Ruby Power and Light, LLC / http://www.rubypal.com Q: What's the best way to get a really solid knowledge of Ruby? A: Come to our Ruby training in Edison, New Jersey, September 14-17! Instructors: David A. Black and Erik Kastner More info and registration: http://rubyurl.com/vmzN