Sha256: 071393eb5544649b675b96ae5d7bceb3ca8ccdc4127f4440820bce3d6ff8f6c6
Contents?: true
Size: 1.63 KB
Versions: 1
Compression:
Stored size: 1.63 KB
Contents
module Searchkick module Model def searchkick(options = {}) @searchkick_options = options.dup @searchkick_env = ENV["RACK_ENV"] || ENV["RAILS_ENV"] || "development" searchkick_env = @searchkick_env # for class_eval class_eval do extend Searchkick::Search extend Searchkick::Reindex include Searchkick::Similar include Tire::Model::Search include Tire::Model::Callbacks unless options[:callbacks] == false tire do index_name options[:index_name] || [klass.model_name.plural, searchkick_env].join("_") end def reindex tire.update_index end def search_data to_hash.reject{|k, v| k == "id" } end def to_indexed_json source = search_data # stringify fields source = source.inject({}){|memo,(k,v)| memo[k.to_s] = v; memo} options = self.class.instance_variable_get("@searchkick_options") # conversions conversions_field = options[:conversions] if conversions_field and source[conversions_field] source[conversions_field] = source[conversions_field].map{|k, v| {query: k, count: v} } end # hack to prevent generator field doesn't exist error (options[:suggest] || []).map(&:to_s).each do |field| source[field] = "a" if !source[field] end # locations (options[:locations] || []).map(&:to_s).each do |field| source[field] = source[field].reverse if source[field] end source.to_json end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
searchkick-0.3.0 | lib/searchkick/model.rb |