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

Status changed from Open to Rejected

The original intention for `dig` is a short-hand traversal of array-hash trees. I don't think it's normal to use `proc` objects as tree nodes.

Matz.


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

* Author: bradleybuda (Bradley Buda)
* Status: Rejected
* 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>