47 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
		
		
			
		
	
	
			47 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
|  | # coding: utf-8 | ||
|  | # this is from : https://github.com/jugyo/sunspot_mongoid | ||
|  | # this file is special for mongoid_auto_increment_id | ||
|  | require 'sunspot' | ||
|  | require 'mongoid' | ||
|  | require 'sunspot/rails' | ||
|  | 
 | ||
|  | # == Examples: | ||
|  | # | ||
|  | # class Post | ||
|  | #   include Mongoid::Document | ||
|  | #   field :title | ||
|  | # | ||
|  | #   include Sunspot::Mongoid | ||
|  | #   searchable do | ||
|  | #     text :title | ||
|  | #   end | ||
|  | # end | ||
|  | # | ||
|  | module OrbitSearchLib | ||
|  |   module ObjectSearchable | ||
|  |     def self.included(base) | ||
|  |       base.class_eval do | ||
|  |         extend Sunspot::Rails::Searchable::ActsAsMethods | ||
|  |         Sunspot::Adapters::DataAccessor.register(DataAccessor, base) | ||
|  |         Sunspot::Adapters::InstanceAdapter.register(InstanceAdapter, base) | ||
|  |       end | ||
|  |     end | ||
|  | 
 | ||
|  |     class InstanceAdapter < Sunspot::Adapters::InstanceAdapter | ||
|  |       def id | ||
|  |         @instance.id | ||
|  |       end | ||
|  |     end | ||
|  | 
 | ||
|  |     class DataAccessor < Sunspot::Adapters::DataAccessor | ||
|  |       def load(id) | ||
|  |         @clazz.where(:_id => id).first | ||
|  |       end | ||
|  | 
 | ||
|  |       def load_all(ids) | ||
|  |         @clazz.where(:_id.in => ids.collect { |id| id.to_i }) | ||
|  |       end | ||
|  |     end | ||
|  |   end | ||
|  | end |