Project

General

Profile

Actions

Feature #14778

open

Make Object#dup accept a block

Added by hkdnet (Ko Sato) almost 3 years ago. Updated almost 3 years ago.

Status:
Feedback
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:87197]

Description

I'd like to use Object#dup with a block, which is equivalent to dup.tap.

An example for dup.tap is here.

require 'uri'

module MyUri
  class << self
    def foo_uri
      base_uri.dup.tap { |e| e.path = '/foo' }
    end

    private

    def base_uri
      @base_uri ||= URI.parse('http://example.com')
    end
  end
end

With this patch, we can write base_uri.dup { |e| e.path = '/foo' } and it's simpler.


Files

dup_with_block.diff (296 Bytes) dup_with_block.diff hkdnet (Ko Sato), 05/20/2018 01:14 AM

Related issues

Related to Ruby master - Feature #12092: Allow Object#clone to yield cloned object before freezingRejectedActions
Actions

Also available in: Atom PDF