Issue #14821 has been updated by matz (Yukihiro Matsumoto).

Status changed from Open to Rejected

Your proposed definition does not behave as you described. The contradiction made me reject the proposal. Please re-submit working proposal.

Matz.


----------------------------------------
Feature #14821: aditional arguments to yield_self
https://bugs.ruby-lang.org/issues/14821#change-72372

* Author: DarkWiiPlayer (Dennis Fischer)
* Status: Rejected
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
Currently, `yield_self` only accepts a block as its single argument. I propose that it should also accept a series of additional arguments that get passed to the block after `self`

This is what I mean:

    def yield_self(*args, &block)
      block.call(self, *args)
    end

which would allow writing code like this

    some_object.yield_self(:name, :surname, &sort_stuff).do_more_stuff()

instead of code like this

    some_object.yield_self{|x| sort_stuff.call(x, :name, :surname).do_more_stuff()

This 1) is shorter 2) expresses intention rather than implementation.



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>