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