lib/sinatra/test.rb in bmizerany-sinatra-0.9.0.2 vs lib/sinatra/test.rb in bmizerany-sinatra-0.9.0.4
- old
+ new
@@ -73,23 +73,29 @@
:cookies => "HTTP_COOKIE",
:content_type => "CONTENT_TYPE"
}
def rack_opts(opts)
- opts.inject({}) do |hash,(key,val)|
+ opts.merge(:lint => true).inject({}) do |hash,(key,val)|
key = RACK_OPT_NAMES[key] || key
hash[key] = val
hash
end
end
- def env_for(opts={})
- opts = rack_opts(opts)
- Rack::MockRequest.env_for(opts)
- end
-
- def param_string(hash)
- hash.map { |pair| pair.map{|v|escape(v)}.join('=') }.join('&')
+ def param_string(value, prefix = nil)
+ case value
+ when Array
+ value.map { |v|
+ param_string(v, "#{prefix}[]")
+ } * "&"
+ when Hash
+ value.map { |k, v|
+ param_string(v, prefix ? "#{prefix}[#{escape(k)}]" : escape(k))
+ } * "&"
+ else
+ "#{prefix}=#{escape(value)}"
+ end
end
if defined? Sinatra::Compat
# Deprecated. Use: "get" instead of "get_it".
%w(get head post put delete).each do |verb|