Module: UrlMaker

Defined in:
lib/url_maker.rb

Instance Method Summary collapse

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