Module: Pagy::StandaloneExtra::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



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/pagy/extras/standalone.rb', line 15

def build_nested_query(value, prefix = nil)
  case value
  when Array
    value.map { |v| build_nested_query(v, "#{prefix}[]") }.join('&')
  when Hash
    value.map do |k, v|
      build_nested_query(v, prefix ? "#{prefix}[#{escape(k)}]" : escape(k))
    end.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



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

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