Module: Cartage::Dig
- Included in:
- StructDig
- Defined in:
- lib/cartage/backport.rb
Overview
An implementation of #dig for Ruby pre-2.3. Based originally on Invoca/ruby_dig with some inspiration from jrochkind/dig_rb.
Instance Method Summary collapse
-
#dig(key, *rest) ⇒ Object
:nodoc:.
Instance Method Details
#dig(key, *rest) ⇒ Object
:nodoc:
9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/cartage/backport.rb', line 9 def dig(key, *rest) value = self[key] if value.nil? || rest.empty? value elsif value.respond_to?(:dig) value.dig(*rest) else fail TypeError, "#{value.class} does not have #dig method" end end |