def fetch_on(arg, &bl)
      unless arg.respond_to?(:fetch)
        raise ArgumentError, "Object responding to `fetch` expected"
      end
      arg.fetch(name) do
        arg.fetch(name.to_s, &bl)
      end
    end
def fetch_on(arg, &bl)
      unless arg.respond_to?(:fetch)
        raise ArgumentError, "Object responding to `fetch` expected"
      end
      arg.fetch(name) do
        arg.fetch(name.to_s, &bl)
      end
    end
Fetch the attribute on `arg`, which is expected to be a Hash object.

 This method allows working with ruby hashes having either Symbols or
 Strings as keys. It ensures that no Symbol is created by the rest of the
 code, since this would provide a DoS attack vector under MRI.