From: brandon_weaver@... Date: 2015-03-19T20:32:41+00:00 Subject: [ruby-core:68565] [Ruby trunk - Feature #10883] Passing a block to itself Issue #10883 has been updated by Brandon Weaver. Nobuyoshi Nakada wrote: > Why `itself` doesn't return itself? > It seems very confusing. Why can't we just tie into the current verbiage? ``` # Yes, contrived 1.yield { |v| v + 5 } # => 6 def defaults_to(default) -> v { v || default } end nil.yield(&defaults_to(5)).times do # .... ``` ---------------------------------------- Feature #10883: Passing a block to itself https://bugs.ruby-lang.org/issues/10883#change-51879 * Author: Damien Robert * Status: Open * Priority: Normal * Assignee: ---------------------------------------- In the discussion of [itself](https://bugs.ruby-lang.org/issues/6373) some people proposed that passing a block to itself could return the value of the block: ~~~ def itself if block_given? yield self else self end end ~~~ It would be very usefull in method chains ~~~~ #this would allow an_array.foo.bar.itself {|x| x[1..x.length-1]}.baz #which flows better than a=an_array.foo.bar a[1..a.length-1].baz ~~~~ -- https://bugs.ruby-lang.org/