Module: Faraday::Utils

Defined in:
lib/bitbucket_rest_api/ext/faraday.rb

Defined Under Namespace

Classes: ParamsHash

Instance Method Summary collapse

Instance Method Details

#build_nested_query(value, prefix = nil, encoder = nil) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/bitbucket_rest_api/ext/faraday.rb', line 20

def build_nested_query(value, prefix = nil, encoder = nil)
  case value
  when Array
    value.map { |v| build_nested_query(v, "#{prefix}%5B%5D", encoder) }.join("&")
  when Hash
    value.map { |k, v|
      processed_value = encoder ? encoder.escape(k) : escape(k)
      build_nested_query(v, prefix ? "#{prefix}%5B#{processed_value}%5D" : processed_value, encoder)
    }.join("&")
  when NilClass
    prefix
  else
    raise ArgumentError, "value must be a Hash" if prefix.nil?
    processed_value = encoder ? encoder.escape(value) : escape(value)
    "#{prefix}=#{processed_value}"
  end
end