module Solr4R::RequestUriExtension

Attributes

params[RW]

Public Instance Methods

with_params(params) click to toggle source
   # File lib/solr4r/uri_extension.rb
42 def with_params(params)
43   self.params, query = params, [self.query].compact
44 
45   params.each { |key, value| query_pairs(key, value).each { |k, v|
46     query << "#{CGI.escape(k.to_s)}=#{CGI.escape(v.to_s)}"
47   } }
48 
49   self.query = query.join('&') unless query.empty?
50 
51   self
52 end

Private Instance Methods

query_pairs(key, value, pairs = []) click to toggle source
   # File lib/solr4r/uri_extension.rb
56 def query_pairs(key, value, pairs = [])
57   if value.is_a?(Hash)
58     kv = value.fetch(vk = :_, true) and pairs << [key, kv]
59 
60     value.each { |sub, val|
61       query_pairs("#{key}.#{sub}", val, pairs) unless sub == vk }
62   else
63     Array(value).each { |val| pairs << [key, val] unless val.nil? }
64   end
65 
66   pairs
67 end