Project

General

Profile

Feature #14821

aditional arguments to yield_self

Added by DarkWiiPlayer (Dennis Fischer) about 1 year ago. Updated about 1 year ago.

Status:
Rejected
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:87382]

Description

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.

History

Updated by duerst (Martin Dürst) about 1 year ago

  • Backport deleted (2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN)
  • Tracker changed from Bug to Feature

This is clearly a feature, so I have changed it from bug to feature.

The usage examples are still a bit abstract, some more concrete examples would be desirable.

Updated by matz (Yukihiro Matsumoto) about 1 year ago

  • Status changed from Open to Rejected

Updated by matz (Yukihiro Matsumoto) about 1 year ago

Your proposal makes the specific case simpler like your example, but in general, it makes the intention of yield_self (or then) less clear.

Matz.

p.s.
I removed the previous comment because I made mistake.

Also available in: Atom PDF