Module: LobbyBoy::Util::URI

Defined in:
lib/lobby_boy/util/uri.rb

Class Method Summary collapse

Class Method Details

.add_query_params(url, additional_params = {}) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/lobby_boy/util/uri.rb', line 8

def add_query_params(url, additional_params = {})
  return nil if url.nil?

  uri = ::URI.parse url.to_s
  params = ::URI.decode_www_form(uri.query || '')

  additional_params.each do |name, value|
    if value
      params.delete_if { |param_name, _| param_name == name.to_s } # override existing

      params << [name.to_s, value]
    end
  end

  uri.query = ::URI.encode_www_form params
  uri.to_s
end