module RSolr::Uri

def build_param(k, v, escape = true)

Deprecated:
  • - used to be called from params_to_solr before 2015-02-25

Parameters:
  • escape (boolean) -- false if no URI escaping is to be performed. Default true.
def build_param(k, v, escape = true)
  warn "[DEPRECATION] `RSolr::Uri.build_param` is deprecated.  Use `URI.encode_www_form_component` or k=v instead."
  escape ? 
    "#{URI.encode_www_form_component(k)}=#{URI.encode_www_form_component(v)}" :
    "#{k}=#{v}"
end

def bytesize(string)

def bytesize(string)
  warn "[DEPRECATION] `RSolr::Uri.bytesize` is deprecated.  Use String.bytesize"
  string.bytesize
end

def bytesize(string)

def bytesize(string)
  warn "[DEPRECATION] `RSolr::Uri.bytesize` is deprecated.  Use String.size"
  string.size
end

def create url

def create url
  ::URI.parse (url[-1] == '/' || URI.parse(url).query) ? url : "#{url}/"
end

def escape_query_value(s)

Deprecated:
def escape_query_value(s)
  warn "[DEPRECATION] `RSolr::Uri.escape_query_value` is deprecated.  Use `URI.encode_www_form_component` instead."
  URI.encode_www_form_component(s)
   s.to_s.gsub(/([^ a-zA-Z0-9_.-]+)/u) {
     '%'+$1.unpack('H2'*bytesize($1)).join('%').upcase
   }.tr(' ', '+')
end

def 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 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