From daf83946bbf2834da8393cd50af2bc7bcee3289f Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Wed, 23 Mar 2016 11:49:28 +0900 Subject: add #dig to Array,Hash and Struct --- mrbgems/mruby-array-ext/mrblib/array.rb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'mrbgems/mruby-array-ext') diff --git a/mrbgems/mruby-array-ext/mrblib/array.rb b/mrbgems/mruby-array-ext/mrblib/array.rb index f19581cdc..04637471d 100644 --- a/mrbgems/mruby-array-ext/mrblib/array.rb +++ b/mrbgems/mruby-array-ext/mrblib/array.rb @@ -744,4 +744,21 @@ class Array def to_ary self end + + ## + # call-seq: + # ary.dig(idx, ...) -> object + # + # Extracts the nested value specified by the sequence of idx + # objects by calling +dig+ at each step, returning +nil+ if any + # intermediate step is +nil+. + # + def dig(idx,*args) + n = self[idx] + if args.size > 0 + n&.dig(*args) + else + n + end + end end -- cgit v1.2.3