Sha256: fe352684f035673db19a612dcbd924b213f0c4fb5723289f45083d2c1be7a827

Contents?: true

Size: 941 Bytes

Versions: 4

Compression:

Stored size: 941 Bytes

Contents

module Searchkick
  module Model

    def searchkick(options = {})
      @searchkick_options = options.dup
      @searchkick_options[:conversions] = true if options[:conversions].nil?

      class_eval do
        extend Searchkick::Search
        extend Searchkick::Reindex
        include Tire::Model::Search
        include Tire::Model::Callbacks
        tire do
          index_name options[:index_name] || [klass.model_name.plural, ENV["RACK_ENV"] || "development"].join("_")
        end

        def reindex
          update_index
        end

        def search_data
          as_json
        end

        def to_indexed_json
          source = search_data
          if self.class.instance_variable_get("@searchkick_options")[:conversions] and source[:conversions]
            source[:conversions] = source[:conversions].map{|k, v| {query: k, count: v} }
          end
          source.to_json
        end
      end
    end

  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
searchkick-0.1.4 lib/searchkick/model.rb
searchkick-0.1.3 lib/searchkick/model.rb
searchkick-0.1.2 lib/searchkick/model.rb
searchkick-0.1.1 lib/searchkick/model.rb