module RSolr::Uri

def self.params_to_solr(params, escape = true)

Returns:
  • (String) - Solr query params as a String, suitable for use in a url

Parameters:
  • escape (boolean) -- false if no URI escaping is to be performed. Default true.
def self.params_to_solr(params, escape = true)
  return URI.encode_www_form(params.reject{|k,v| k.to_s.empty? || v.to_s.empty?}) if escape
  # escape = false if we are here
  mapped = params.map do |k, v|
    next if v.to_s.empty?
    if v.class == ::Array
      params_to_solr(v.map { |x| [k, x] }, false)
    else
      "#{k}=#{v}"
    end
  end
  mapped.compact.join("&")
end