# File lib/recursive_open_struct/dig.rb, line 6
    def dig(name, *names)
      begin
        name = name.to_sym
      rescue NoMethodError
        raise TypeError, "#{name} is not a symbol nor a string"
      end

      name_val = self[name]

      if names.length > 0 && name_val.respond_to?(:dig)
        name_val.dig(*names)
      else
        name_val
      end
    end