class Hash
  def recursive_merge!(hash)
    self.merge!( hash ) do |key, oldval, newval|
      if oldval.class == Hash
        oldval.recursive_merge! newval
      else
        newval
      end
    end
  end
end