Module: Rack::Test::Utils
Overview
:nodoc:
Class Attribute Summary collapse
-
.override_build_nested_query ⇒ Object
Returns the value of attribute override_build_nested_query.
Instance Method Summary collapse
-
#build_multipart(params, _first = true, multipart = false) ⇒ Object
Build a multipart body for the given params.
-
#build_nested_query(value, prefix = nil) ⇒ Object
Build a query string for the given value and prefix.
Class Attribute Details
.override_build_nested_query ⇒ Object
Returns the value of attribute override_build_nested_query.
10 11 12 |
# File 'lib/rack/test/utils.rb', line 10 def override_build_nested_query @override_build_nested_query end |
Instance Method Details
#build_multipart(params, _first = true, multipart = false) ⇒ Object
Build a multipart body for the given params.
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/rack/test/utils.rb', line 41 def build_multipart(params, _first = true, multipart = false) raise ArgumentError, 'value must be a Hash' unless params.is_a?(Hash) unless multipart query = lambda { |value| case value when Array value.each(&query) when Hash value.values.each(&query) when UploadedFile multipart = true end } params.values.each(&query) return nil unless multipart end params = normalize_multipart_params(params, true) buffer = String.new build_parts(buffer, params) buffer end |
#build_nested_query(value, prefix = nil) ⇒ Object
Build a query string for the given value and prefix. The value can be an array or hash of parameters.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/rack/test/utils.rb', line 16 def build_nested_query(value, prefix = nil) return super if Rack::Test::Utils.override_build_nested_query case value when Array if value.empty? "#{prefix}[]=" else prefix += "[]" unless unescape(prefix).end_with?('[]') value.map do |v| build_nested_query(v, prefix.to_s) end.join('&') end when Hash value.map do |k, v| build_nested_query(v, prefix ? "#{prefix}[#{escape(k)}]" : escape(k)) end.join('&') when NilClass prefix.to_s else "#{prefix}=#{escape(value)}" end end |