lib/deas/test_runner.rb in deas-0.24.0 vs lib/deas/test_runner.rb in deas-0.24.1
- old
+ new
@@ -10,15 +10,15 @@
def initialize(handler_class, args = nil)
args = (args || {}).dup
@app_settings = OpenStruct.new(args.delete(:app_settings))
- @request = args.delete(:request)
- @response = args.delete(:response)
- @params = normalize_params(args.delete(:params) || {})
- @logger = args.delete(:logger) || Deas::NullLogger.new
- @session = args.delete(:session)
+ @request = args.delete(:request)
+ @response = args.delete(:response)
+ @params = NormalizedParams.new(args.delete(:params) || {}).value
+ @logger = args.delete(:logger) || Deas::NullLogger.new
+ @session = args.delete(:session)
super(handler_class)
args.each{|key, value| @handler.send("#{key}=", value) }
@return_value = catch(:halt){ @handler.init; nil }
@@ -80,29 +80,12 @@
def send_file(file_path, options = nil, &block)
SendFileArgs.new(file_path, options, block)
end
SendFileArgs = Struct.new(:file_path, :options, :block)
- private
-
- def normalize_params(params)
- Stringify.new(params)
- end
-
- module Stringify
- def self.new(value)
- if value.is_a?(::Array)
- value.map{ |i| Stringify.new(i) }
- elsif Rack::Utils.params_hash_type?(value)
- value.inject({}){ |h, (k, v)| h[k.to_s] = Stringify.new(v); h }
- elsif self.file_type?(value)
- value
- else
- value.to_s
- end
- end
-
- def self.file_type?(value)
+ class NormalizedParams < Deas::Runner::NormalizedParams
+ def file_type?(value)
+ value.kind_of?(::Tempfile) ||
value.kind_of?(::File) ||
value.kind_of?(::Rack::Multipart::UploadedFile) ||
(defined?(::Rack::Test::UploadedFile) && value.kind_of?(::Rack::Test::UploadedFile))
end
end