Module: MongoMapper::Search::ClassMethods

Defined in:
lib/mm-search/search.rb

Instance Method Summary collapse

Instance Method Details

#language(lang = 'en') ⇒ Object



24
25
26
# File 'lib/mm-search/search.rb', line 24

def language(lang = 'en')
  @language ||= lang
end

#search(query, opts = {}) ⇒ Object



28
29
30
31
32
33
34
35
36
37
# File 'lib/mm-search/search.rb', line 28

def search(query, opts = {})
  q = query.downcase.split.map do |k|
    Regexp.escape(k)
  end.join("|")
  if opts[:per_page]
    self.paginate(opts.deep_merge(:conditions => {:_keywords => /^(#{q}).*/ }))
  else
    self.find(:all, opts.deep_merge(:conditions => {:_keywords => /^(#{q}).*/ }))
  end
end

#searchable_keys(*keys) ⇒ Object



17
18
19
20
21
22
# File 'lib/mm-search/search.rb', line 17

def searchable_keys(*keys)
  @searchable_keys ||= Set.new
  @searchable_keys += keys

  @searchable_keys
end