Module: FilterFactory::Mongoid::Filter

Defined in:
lib/filter_factory/mongoid/filter.rb

Instance Method Summary collapse

Instance Method Details

#filter(filter_object) ⇒ Mongoid::Criteria

Applies the filter passed as an argument to model class or Mongoid::Criteria

Parameters:

  • filter_object (Filter)

    filter object used to filter records

Returns:

  • (Mongoid::Criteria)


8
9
10
11
12
13
14
15
16
# File 'lib/filter_factory/mongoid/filter.rb', line 8

def filter(filter_object)
  conditions = filter_object.filled_fields.map do |field|
    FilterFactory::Mongoid::Condition.new(field.name, field.value).method(field.condition)
  end

  conditions.inject(self) do |res, condition|
    res.instance_eval(&condition)
  end
end