module RubyDig

def dig(key, *rest)

def dig(key, *rest)
  value = self[key]
  if value.nil? || rest.empty?
    value
  elsif value.respond_to?(:dig)
    value.dig(*rest)
  else
    raise TypeError, "#{value.class} does not respond to `#dig'"
  end
end