Project

General

Profile

Feature #8896

#tap with missing block

Added by Ilya Vorontsov about 3 years ago. Updated about 3 years ago.

Status:
Open
Priority:
Normal
Assignee:
-
[ruby-core:57134]

Description

In case when no block provided to tap, it fails. So if you want method which can be called with or without block - you can't do it like this:

def self.create(args={}, &block)
new.set_attributes(args).tap(&block)
end

but should use block_defined? to prevent #tap's failure.

I suggest to make tap with no block given just to return self and raise no errors.

History

#1 [ruby-core:57135] Updated by Charlie Somerville about 3 years ago

I would like to see tap return an Enumerator if a block is not passed.

#2 [ruby-core:57142] Updated by Ilya Vorontsov about 3 years ago

I would like to see tap return an Enumerator if a block is not passed.
Can you explain your suggestion a bit more? I can't imagine realization and use-case yet.

#3 [ruby-core:57144] Updated by Fuad Saud about 3 years ago

#tap without a block returning self makes sense

--
Fuad Saud
Sent with Sparrow (http://www.sparrowmailapp.com/?sig)

On Wednesday, September 11, 2013 at 1:54 PM, prijutme4ty (Ilya Vorontsov) wrote:

Issue #8896 has been updated by prijutme4ty (Ilya Vorontsov).

I would like to see tap return an Enumerator if a block is not passed.

Can you explain your suggestion a bit more? I can't imagine realization and use-case yet.

Feature #8896: #tap with missing block
https://bugs.ruby-lang.org/issues/8896#change-41756

Author: prijutme4ty (Ilya Vorontsov)
Status: Open
Priority: Normal
Assignee:
Category:
Target version:

In case when no block provided to tap, it fails. So if you want method which can be called with or without block - you can't do it like this:

def self.create(args={}, &block)
new.set_attributes(args).tap(&block)
end

but should use block_defined? to prevent #tap's failure.

I suggest to make tap with no block given just to return self and raise no errors.

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

Also available in: Atom PDF