Module: Pagy::QueryUtils

Defined in:
lib/pagy/extras/standalone.rb

Overview

extracted from Rack::Utils and reformatted for rubocop

Class Method Summary collapse

Class Method Details

.build_nested_query(value, prefix = nil) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/pagy/extras/standalone.rb', line 13

def build_nested_query(value, prefix = nil)
  case value
  when Array
    value.map { |v| build_nested_query(v, "#{prefix}[]") }.join('&')
  when Hash
    value.map { |k, v| build_nested_query(v, prefix ? "#{prefix}[#{escape(k)}]" : escape(k)) }.delete_if(&:empty?).join('&')
  when nil
    prefix
  else
    raise ArgumentError, 'value must be a Hash' if prefix.nil?
    "#{prefix}=#{escape(value)}"
  end
end

.escape(str) ⇒ Object



10
11
12
# File 'lib/pagy/extras/standalone.rb', line 10

def escape(str)
  URI.encode_www_form_component(str)
end