-
Notifications
You must be signed in to change notification settings - Fork 54
/
util.rb
33 lines (27 loc) · 961 Bytes
/
util.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
module Stretcher
module Util
# cURL formats a Faraday req. Useful for logging
def self.curl_format(req)
body = "-d '#{req.body.is_a?(Hash) ? MultiJson.dump(req.body) : req.body}'" if req.body
headers = req.headers.map {|name, value| "'-H #{name}: #{value}'" }.sort.join(' ')
method = req.method.to_s.upcase
url = Util.qurl(req.path,req.params)
["curl -X#{method}", "'" + url + "'", body, headers].compact.join(' ')
end
# Formats a url + query opts
def self.qurl(url, query_opts=nil)
query_opts && !query_opts.empty? ? "#{url}?#{querify(query_opts)}" : url
end
def self.querify(hash)
hash.map {|k,v| "#{k}=#{v}"}.join('&')
end
def self.clean_params params={}
return unless params
clean_params = {}
params.each do |key, value|
clean_params[key] = value.is_a?(Array) ? value.join(',') : value
end
clean_params
end
end
end