Sha256: 46107fa817615b1eeec916520418bf2d9e4df77b553f1ccd25e0ebe221688c3b

Contents?: true

Size: 1.07 KB

Versions: 12

Compression:

Stored size: 1.07 KB

Contents

module Searchjoy
  module Track
    module Query
      def track
        results = @execute

        if options[:track] && !results.search
          attributes = options[:track] == true ? {} : options[:track]

          search_type =
            if klass.respond_to?(:name) && klass.name.present?
              klass.name
            elsif options[:models]
              Array(options[:models]).map(&:to_s).sort.join(" ")
            elsif options[:index_name]
              Array(options[:index_name]).map(&:to_s).sort.join(" ")
            else
              "All Indices"
            end

          results.search = Searchjoy::Search.create({search_type: search_type, query: term, results_count: results.total_count}.merge(attributes))
        end
      end

      def execute
        results = super
        track
        results
      end

      def search
        @execute.search if @execute
      end
    end

    module MultiSearch
      def perform
        result = super

        @queries.each do |query|
          query.track
        end

        result
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
searchjoy-1.3.2 lib/searchjoy/track.rb
searchjoy-1.3.1 lib/searchjoy/track.rb
searchjoy-1.3.0 lib/searchjoy/track.rb
searchjoy-1.2.0 lib/searchjoy/track.rb
searchjoy-1.1.0 lib/searchjoy/track.rb
searchjoy-1.0.0 lib/searchjoy/track.rb
searchjoy-0.5.1 lib/searchjoy/track.rb
searchjoy-0.5.0 lib/searchjoy/track.rb
searchjoy-0.4.3 lib/searchjoy/track.rb
searchjoy-0.4.2 lib/searchjoy/track.rb
searchjoy-0.4.1 lib/searchjoy/track.rb
searchjoy-0.4.0 lib/searchjoy/track.rb