Sha256: 6468e42db12441cd8354409400841f45572f05bcee141e1c7cd1d38bf32613a1

Contents?: true

Size: 857 Bytes

Versions: 13

Compression:

Stored size: 857 Bytes

Contents

module Sunspot
  module Query
    # 
    # This query component generates parameters for LocalSolr geo-radial
    # searches. The LocalSolr API is fairly rigid, so the Local component
    # doesn't have any options - it just takes coordinates and a radius, and
    # generates the appropriate parameters.
    #
    class Local #:nodoc:
      def initialize(coordinates, options)
        @coordinates, @options = Util::Coordinates.new(coordinates), options
      end

      def to_params
        local_params = [
          [:radius, @options[:distance]],
          [:sort, @options[:sort]]
        ].map do |key,value|
          "#{key}=#{value}" if value
        end.compact.join(" ") #TODO Centralized local param builder
        query = "{!#{local_params}}#{@coordinates.lat},#{@coordinates.lng}"
        { :spatial => query }
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 3 rubygems

Version Path
ruben-sunspot-1.1.4 lib/sunspot/query/local.rb
ruben-sunspot-1.1.3 lib/sunspot/query/local.rb
ruben-sunspot-1.1.2 lib/sunspot/query/local.rb
ruben-sunspot-1.1.1 lib/sunspot/query/local.rb
ruben-sunspot-1.1.0 lib/sunspot/query/local.rb
nuatt_sunspot-1.1.0.3 lib/sunspot/query/local.rb
sunspot-1.1.0 lib/sunspot/query/local.rb
sunspot-1.0.5 lib/sunspot/query/local.rb
sunspot-1.0.4 lib/sunspot/query/local.rb
sunspot-1.0.3 lib/sunspot/query/local.rb
sunspot-1.0.2 lib/sunspot/query/local.rb
sunspot-1.0.1 lib/sunspot/query/local.rb
sunspot-1.0.0 lib/sunspot/query/local.rb