112: def query_string
113: return "" unless options and ! options.empty?
114: "?" + options.collect do |key, value|
115: case value
116: when nil; next
117: when true, false; value = value.to_s
118: when Fixnum, Bignum, Float; value = value
119: when String; value = CGI.escape(value)
120: when Symbol; value = CGI.escape(value.to_s)
121: when Array; value = CGI.escape(YAML.dump(value))
122: else
123: raise ArgumentError, "HTTP REST queries cannot handle values of type '%s'" % value.class
124: end
125:
126: "%s=%s" % [key, value]
127: end.join("&")
128: end