module Nimbu::Utils::Url
Constants
- DEFAULT_QUERY_SEP
- KEY_VALUE_SEP
Public Instance Methods
build_query(params)
click to toggle source
# File lib/nimbu-api/utils/url.rb, line 16 def build_query(params) params.map { |k, v| if v.class == Array build_query(v.map { |x| [k, x] }) else v.nil? ? escape(k) : "#{escape(k)}=#{escape(v)}" end }.join("&") end
escape(s)
click to toggle source
# File lib/nimbu-api/utils/url.rb, line 12 def escape(s) CGI.escape s.to_s end
parse_query(query_string)
click to toggle source
# File lib/nimbu-api/utils/url.rb, line 26 def parse_query(query_string) return '' if query_string.nil? || query_string.empty? params = {} query_string.split(DEFAULT_QUERY_SEP).each do |part| k, v = part.split(KEY_VALUE_SEP, 2).map { |el| unescape(el) } if cur = params[k] if cur.class == Array params[k] << v else params[k] = [cur, v] end else params[k] = v end end params end
parse_query_for_param(query_string, name)
click to toggle source
# File lib/nimbu-api/utils/url.rb, line 46 def parse_query_for_param(query_string, name) parse_query(query_string).each do |key, val| return val.first if (name == key) && val.is_a?(Array) return val if (name == key) end return nil end
unescape(s)
click to toggle source
# File lib/nimbu-api/utils/url.rb, line 14 def unescape(s) CGI.unescape s.to_s end