Sha256: 09819c5c00b225a678781e0142878b09760c82fcf7e60430ccf6541058f478c7

Contents?: true

Size: 805 Bytes

Versions: 16

Compression:

Stored size: 805 Bytes

Contents

require 'uri'

module RSolr::Uri
  # Creates a Solr based query string.
  # Keys that have arrays values are set multiple times:
  #   params_to_solr(:q => 'query', :fq => ['a', 'b'])
  # is converted to:
  #   ?q=query&fq=a&fq=b
  # @param [boolean] escape false if no URI escaping is to be performed.  Default true.
  # @return [String] Solr query params as a String, suitable for use in a url
  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
end

Version data entries

16 entries across 16 versions & 4 rubygems

Version Path
blacklight-spotlight-3.6.0.beta8 vendor/bundle/ruby/3.2.0/gems/rsolr-2.6.0/lib/rsolr/uri.rb
rsolr-2.6.0 lib/rsolr/uri.rb
rsolr-2.5.0 lib/rsolr/uri.rb
rsolr-2.4.0 lib/rsolr/uri.rb
rsolr-2.3.0 lib/rsolr/uri.rb
telvue-rsolr-2.2.2 lib/rsolr/uri.rb
rsolr-2.2.1 lib/rsolr/uri.rb
rsolr-2.2.0 lib/rsolr/uri.rb
rsolr-2.1.0 lib/rsolr/uri.rb
rsolr-2.0.2 lib/rsolr/uri.rb
rsolr-2.0.1 lib/rsolr/uri.rb
enju_leaf-1.2.1 vendor/bundle/ruby/2.3/gems/rsolr-2.0.0/lib/rsolr/uri.rb
rsolr-2.0.0 lib/rsolr/uri.rb
rsolr-2.0.0.rc1 lib/rsolr/uri.rb
rsolr-2.0.0.pre3 lib/rsolr/uri.rb
rsolr-2.0.0.pre2 lib/rsolr/uri.rb