From: ruby-core@...
Date: 2018-02-13T04:32:37+00:00
Subject: [ruby-core:85515] [Ruby trunk Feature#14468] Add Proc#dig

Issue #14468 has been updated by marcandre (Marc-Andre Lafortune).

Assignee set to matz (Yukihiro Matsumoto)

I don't oppose it, but I'm not very enthusiastic about it. `Integer` and `String` also respond_to `[]`, and I don't quite see dig for these either.

----------------------------------------
Feature #14468: Add Proc#dig
https://bugs.ruby-lang.org/issues/14468#change-70305

* Author: bradleybuda (Bradley Buda)
* Status: Open
* Priority: Normal
* Assignee: matz (Yukihiro Matsumoto)
* Target version: 
----------------------------------------
Since Proc already responds to [], it would be cool if Procs could participate in a recursive dig. Like this:

Current Behavior:

~~~
obj = [
  0,
  {
    a: ->(x) { x * 2 },
    b: "c"
  },
]

obj[1][:a][4] == 8 # true
obj.dig(1, :a, 4) == 8 # TypeError (Proc does not have #dig method)
~~~

Desired behavior:

~~~
obj.dig(1, :a, 4) == 8 # true
~~~

I am willing to implement this but I wanted to see if the devs think it is a good idea first. If there are no objections, I'll put together a patch.



-- 
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>