119: def query_string
120: return "" unless options and ! options.empty?
121: "?" + options.collect do |key, value|
122: case value
123: when nil; next
124: when true, false; value = value.to_s
125: when Fixnum, Bignum, Float; value = value
126: when String; value = CGI.escape(value)
127: when Symbol; value = CGI.escape(value.to_s)
128: when Array; value = CGI.escape(YAML.dump(value))
129: else
130: raise ArgumentError, "HTTP REST queries cannot handle values of type '#{value.class}'"
131: end
132:
133: "#{key}=#{value}"
134: end.join("&")
135: end