Module: UrlMaker
- Defined in:
- lib/url_maker.rb
Instance Method Summary collapse
- #_escape(value, method) ⇒ Object
- #append_url_param(url, param) ⇒ Object
- #build_query_string(pars, escape_method = :cgi) ⇒ Object
- #build_url(url, pars, escape = :cgi) ⇒ Object
Instance Method Details
#_escape(value, method) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/url_maker.rb', line 19 def _escape(value, method) case method.to_s when 'cgi' CGI.escape(value.to_s) when 'uri' URI.escape(value.to_s, Regexp.new("[^#{URI::REGEXP::PATTERN::UNRESERVED}]")) when '' value.to_s else raise ArgumentError.new("unknown escape method: #{method}") end end |
#append_url_param(url, param) ⇒ Object
13 14 15 16 17 |
# File 'lib/url_maker.rb', line 13 def append_url_param(url, param) return url if param.blank? joiner = url.index('?') ? '&' : '?' [url, param].join(joiner) end |
#build_query_string(pars, escape_method = :cgi) ⇒ Object
5 6 7 |
# File 'lib/url_maker.rb', line 5 def build_query_string(pars, escape_method = :cgi) pars.map {|key, val| _escape(key, escape_method) + '=' + _escape(val, escape_method) }.join("&") end |
#build_url(url, pars, escape = :cgi) ⇒ Object
9 10 11 |
# File 'lib/url_maker.rb', line 9 def build_url(url, pars, escape = :cgi) append_url_param(url, build_query_string(pars, escape)) end |