Sha256: 0a4b33979ba3ab3fe6bf4065ab518713e384cca29acf2327cc3c8b1d1c973eb0
Contents?: true
Size: 1.31 KB
Versions: 1
Compression:
Stored size: 1.31 KB
Contents
module Searchkick module Model def searchkick(options = {}) @searchkick_options = options.dup class_eval do extend Searchkick::Search extend Searchkick::Reindex include Searchkick::Similar 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 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 source.to_json end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
searchkick-0.2.4 | lib/searchkick/model.rb |