Module: Puffer::OrmAdapter::Mongoid

Defined in:
lib/puffer/orm_adapter/mongoid.rb

Instance Method Summary collapse

Instance Method Details

#columns_hashObject



5
6
7
8
9
# File 'lib/puffer/orm_adapter/mongoid.rb', line 5

def columns_hash
  klass.fields.inject({}) do |result, (name, object)|
    result.merge name => {:type => object.type.to_s.underscore.to_sym}
  end
end

#filter(scope, fields, options = {}) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/puffer/orm_adapter/mongoid.rb', line 11

def filter scope, fields, options = {}
  fields = fields.columns
  conditions, order = extract_conditions_and_order!(options)

  conditions_fields = fields.select {|f| conditions.keys.include?(f.field_name)}.to_fieldset
  search_fields = fields.select {|f| !conditions_fields.include?(f) && search_types.include?(f.column_type)}
  all_fields = conditions_fields + search_fields

  conditions = conditions.reduce({}) do |res, (name, value)|
    field = conditions_fields[name]
    res[field.name] = value if field
    res
  end

  scope = scope.any_of(searches(search_fields, options[:search])) if options[:search].present?
  scope.where(conditions).order(order)
end