class Lurch::QueryBuilder
Public Class Methods
new(params)
click to toggle source
# File lib/lurch/query_builder.rb, line 3 def initialize(params) @params = Hash(params) end
Public Instance Methods
encode()
click to toggle source
# File lib/lurch/query_builder.rb, line 7 def encode encode_value(@params) end
Private Instance Methods
append_key(root_key, key)
click to toggle source
# File lib/lurch/query_builder.rb, line 22 def append_key(root_key, key) root_key.nil? ? key : "#{root_key}[#{key}]" end
encode_value(value, key = nil)
click to toggle source
# File lib/lurch/query_builder.rb, line 13 def encode_value(value, key = nil) case value when Hash then value.map { |k, v| encode_value(v, append_key(key, k)) }.reject(&:empty?).join("&") when Array then value.map { |v| encode_value(v, "#{key}[]") }.reject(&:empty?).join("&") else value.to_s.empty? ? "" : "#{key}=#{CGI.escape(value.to_s)}" end end