class Sinatra::IndifferentHash

def merge!(other_hash)

def merge!(other_hash)
  return super if other_hash.is_a?(self.class)
  other_hash.each_pair do |key, value|
    key = convert_key(key)
    value = yield(key, self[key], value) if block_given? && key?(key)
    self[key] = convert_value(value)
  end
  self
end