Module: Padrino::Contrib::Orm::MongoMapper::Search::ClassMethods

Defined in:
lib/padrino-contrib/orm/mongo_mapper/search.rb

Instance Method Summary collapse

Instance Method Details

#has_search(*fields) ⇒ Object



21
22
23
# File 'lib/padrino-contrib/orm/mongo_mapper/search.rb', line 21

def has_search(*fields)
  @_search_fields = fields
end

#search(text, options = {}) ⇒ Object



25
26
27
28
29
30
31
32
# File 'lib/padrino-contrib/orm/mongo_mapper/search.rb', line 25

def search(text, options={})
  if text
    re    = Regexp.new(Regexp.escape(text), 'i')
    where = @_search_fields.map { |field| "this.#{field}.match(#{re.inspect})" }.join(" || ")
    options.merge!("$where" => where)
  end
  options.delete(:paginate) ? paginate(options) : all(options)
end