module QueryString

Module with class methods for convertation

Constants

VERSION

Public Class Methods

build(value, prefix = nil) click to toggle source
# File lib/query_string.rb, line 6
def build(value, prefix = nil)
  case value
  when Hash
    build_hash(value, prefix)
  when Array
    value.map { |v| build(v, "#{prefix}[]") }.join('&')
  when nil then prefix.to_s
  else
    raise ArgumentError, 'value must be a Hash' if prefix.nil?
    "#{prefix}=#{escape(value)}"
  end
end

Private Class Methods

build_hash(hash, prefix) click to toggle source
# File lib/query_string.rb, line 21
def build_hash(hash, prefix)
  hash.map do |k, v|
    build(v, prefix ? "#{prefix}[#{escape(k)}]" : escape(k))
  end.reject(&:empty?).join('&')
end
escape(value) click to toggle source
# File lib/query_string.rb, line 27
def escape(value)
  URI.encode_www_form_component(value)
end