module RSolr::Uri
def build_param(k, v, escape = true)
- - 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)
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)
-
(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