Module: Seam::Http::UrlSearchParamsEncoder
- Defined in:
- lib/seam/request.rb
Defined Under Namespace
Classes: Decoded
Class Method Summary collapse
-
.decode(query) ⇒ Object
Called by Faraday when a request path carries its own query string.
- .encode(params) ⇒ Object
Class Method Details
.decode(query) ⇒ Object
Called by Faraday when a request path carries its own query string.
153 154 155 156 157 158 159 160 |
# File 'lib/seam/request.rb', line 153 def self.decode(query) return {} if query.nil? || query.empty? pairs = URI.decode_www_form(query.encode(Encoding::UTF_8)) pairs.each_with_object({}) do |(name, value), decoded| (decoded[name] ||= Decoded.new([])).values << value end end |
.encode(params) ⇒ Object
134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 |
# File 'lib/seam/request.rb', line 134 def self.encode(params) search_params = Seam::UrlSearchParams.new map_params = {} params.each do |name, value| if value.is_a?(Decoded) value.values.each { |element| search_params.append(name, element) } else map_params[name] = value end end return search_params.to_s if map_params.empty? Seam.update_url_search_params(search_params, map_params) search_params.to_s end |