def sanitize( hash, target = {} )
      unless hash.is_a?(Hash)
        raise ArgumentError, "Expecting a Hash but received a #{hash.class.name}"
      end

      hash.each { |k,v| target[k.to_s] = v }
      return target
    end
def sanitize( hash, target = {} )
      unless hash.is_a?(Hash)
        raise ArgumentError, "Expecting a Hash but received a #{hash.class.name}"
      end

      hash.each { |k,v| target[k.to_s] = v }
      return target
    end
Given a Hash convert all keys into Strings. The values are not altered
 in any way. The converted keys and their values are stored in the target
 Hash if provided. Otherwise a new Hash is created and returned.

 hash   - The Hash of values to push onto the context stack.
 target - The target Hash to store the key value pairs.

 Returns a new Hash with all keys converted to Strings.
 Raises an ArgumentError if hash is not a Hash.