Module: OssActiveRecord::Searchable

Extended by:
ActiveSupport::Concern
Defined in:
lib/oss_active_record/searchable.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#index(index_instance) ⇒ Object



55
56
57
58
59
60
61
62
# File 'lib/oss_active_record/searchable.rb', line 55

def index(index_instance)
  doc = self.to_indexable(index_instance.fields)
  oss_doc = Oss::Document.new
  doc.each do |name,value|
    oss_doc.fields << Oss::Field.new(name, value)
  end
  index_instance.index(oss_doc)
end

#to_indexable(fields) ⇒ Object



64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/oss_active_record/searchable.rb', line 64

def to_indexable(fields)
  doc={}
  fields.each do |field|
    if field[:block].nil?
      val = self.send(field[:name].to_sym)
    else
      val = field[:block].call
    end
    doc["#{field[:name]}|#{field[:type]}"]=val
  end
  doc
end