module MongoSearch::Searchable

Private Instance Methods

extract_keywords(text) click to toggle source
# File lib/mongo_search.rb, line 70
def extract_keywords(text)
  self._keywords += KeywordsExtractor.extract(text) unless text.nil?
end
extract_keywords_for_association(name, attribute) click to toggle source
# File lib/mongo_search.rb, line 74
def extract_keywords_for_association(name, attribute)
  association = send(name)
  return [] if association.nil?
  if association.respond_to?(:each)
    association.each { |doc| extract_keywords(doc[attribute]) }
  else
    extract_keywords(association[attribute])
  end
end
set_keywords() click to toggle source
# File lib/mongo_search.rb, line 54
def set_keywords
  self._keywords = []
  search_fields.each do |field|
    if field.respond_to?(:each)
      field.each do |name, attribute|
        extract_keywords_for_association(name, attribute)
      end
    elsif respond_to?(field)
      extract_keywords(send(field))
    else
      extract_keywords(self[field])
    end
  end
  self._keywords.uniq!
end