From: Matthew Kerwin Date: 2014-08-09T07:59:26+10:00 Subject: [ruby-core:64274] Re: [ruby-trunk - Feature #10095] Object#as On 09/08/2014, rafaelmfranca@gmail.com wrote: > Issue #10095 has been updated by Rafael Fran��a. > > > I believe using `#itself` for this feature will cause confusion. By what I > could understand of the original proposal its idea is to return the result > of the block instead of the objects itself. > > The idea behind `#itself` is to return the object. If we add support to a > block and make the method return the result of the block we are just going > against the original idea of `#itself`. > I suppose examples will help illustrate what seems most clear. This is a short snippet along the lines of what I think makes this proposed method useful: a (long?) chain of methods that are prefixed/wrapped towards the end: n = gets.chomp.as{|i| Integer(i)} n = gets.chomp.itself{|i| Integer(i)} n = gets.chomp.as do |i| Integer(i) end n = gets.chomp.itself do |i| Integer(i) end In short short form #as seems appealing, but the long form it seems to me to be too messy. #itself never seems ambiguous to me, but then I'm already aware of #tap and can see that this is different. My preference is still for #itself Incidentally, I think #yield is a bad name because it does the exact opposite thing depending on whether you pass it a block: def foo &b yield {|o| ... } yield ... end -- Matthew Kerwin http://matthew.kerwin.net.au/