Sha256: 8e4aecfb663809959ccd21a3cdd816de117f375d0bdfd00c1ef906be3fd497ac

Contents?: true

Size: 408 Bytes

Versions: 2

Compression:

Stored size: 408 Bytes

Contents

class Hash
  def deep_fetch(key, default = nil)
    keys = key.to_s.split('.')
    value = dig(*keys) rescue default
    value.nil? ? default : value  # value can be false (Boolean)
  end
end

class Array
  def deep_fetch(index, default = nil)
    indexes = index.to_s.split('.').map(&:to_i)
    value = dig(*indexes) rescue default
    value.nil? ? default : value  # value can be false (Boolean)
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
json_logic-0.4.4 lib/core_ext/deep_fetch.rb
json_logic-0.4.3 lib/core_ext/deep_fetch.rb