Sha256: 8b763c2c6ae2570d39fd7c47699042282dfb9818c4237e857f9818339072dc4d
Contents?: true
Size: 1.1 KB
Versions: 17
Compression:
Stored size: 1.1 KB
Contents
module HTTPI module QueryBuilder class Flat # Returns a +query+ string given a +Hash+. # Example: # # build({names => ['Bruno', 'Samantha', 'Alexandre']}) # # => "names=Bruno&names=Samantha&names=Alexandre" def self.build(query) Rack::Utils.build_query(query) end end class Nested # Returns a +query+ string given a +Hash+. # Example: # # build({names => ['Bruno', 'Samantha', 'Alexandre']}) # # => "names[]=Bruno&names[]=Samantha&names[]=Alexandre" def self.build(query) stringfied_query = stringify_hash_values(query) Rack::Utils.build_nested_query(stringfied_query) end private # Changes Hash values into Strings def self.stringify_hash_values(query) query.each do |param, value| if value.kind_of?(Hash) query[param] = stringify_hash_values(value) elsif value.kind_of?(Array) query[param] = value.map(&:to_s) else query[param] = value.to_s end end end end end end
Version data entries
17 entries across 17 versions & 1 rubygems