parse-params public #49

Merged
merged 4 commits into from Mar 22, 2012
+20 −0
Viewing a subset of changes. View all

form-encode implemented

commit 638c1e3dc9bcb192881ccfdeb4a3f1794ba333c1 Giacomo Ritucci committed Jan 15, 2012
View
20 ring-core/src/ring/util/codec.clj
@@ -52,3 +52,23 @@
param-map))
{}
(string/split param-string #"&")))
+
+(defn form-encode
+ "Encode parameters from a map into a string."
+ ([param-map]
+ (form-encode param-map "UTF-8"))
+ ([param-map encoding]
+ (form-encode (keys param-map)
+ (vals param-map)
+ encoding))
+ ([params values encoding]
+ (string/join #"&"
+ (map (fn [param value]
+ (if (vector? value)
+ (form-encode (repeat (count value) param)
+ value
+ encoding)
+ (str (url-encode param)
+ "="
+ (url-encode value))))
+ params values))))