Method: Gin.build_query

Defined in:
lib/gin.rb

.build_query(value, prefix = nil) ⇒ Object

Create a URI query from a Hash.



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/gin.rb', line 53

def self.build_query value, prefix=nil
  case value
  when Array
    raise ArgumentError, "no prefix given" if prefix.nil?
    value.map { |v|
      build_query(v, "#{prefix}[]")
    }.join("&")

  when Hash
    value.map { |k, v|
      build_query(v, prefix ?
        "#{prefix}[#{CGI.escape(k.to_s)}]" : CGI.escape(k.to_s))
    }.join("&")

  when String, Integer, Float, TrueClass, FalseClass
    raise ArgumentError, "value must be a Hash" if prefix.nil?
    "#{prefix}=#{CGI.escape(value.to_s)}"

  else
    prefix
  end
end