Dig-ging into Data
Ruby 2.3 added a couple of dig methods to aid in accessing nested data.
Here’s some Hash and Array examples:
hash = {
  animals: {
    furry: ["dog", "cat"],
    spikey: ["porcupine", "echidna"]
  }
}
hash.dig(:animals, :furry)
# => ["dog", "cat"]
# safely returns `nil` for missing keys
hash.dig(:plants, :yellow)
# => nil
array = [1, [[2, 3], 4, 5], 6]
array.dig(1, 0, 1)
# => 3
# dig on arrays take indexes, and repeatly call dig on the result
# thus, you have to be careful if the return type is not an array!
array.dig(2)
# => 6
array.dig(2, 3)
# => TypeError: Fixnum does not have #dig method
# and duck typing means they can be combined!
hash.dig(:animals, :spikey, 1)
# => "echidna"
    Written on June 27, 2018 by jasonschweier
  
  
