Class: Dbee::Providers::ActiveRecordProvider::ExpressionBuilder::WhereMaker
- Inherits:
-
Object
- Object
- Dbee::Providers::ActiveRecordProvider::ExpressionBuilder::WhereMaker
- Includes:
- Singleton
- Defined in:
- lib/dbee/providers/active_record_provider/expression_builder/where_maker.rb
Overview
Derives Arel#where predicates.
Instance Method Summary collapse
Instance Method Details
#make(filter, arel_column) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/dbee/providers/active_record_provider/expression_builder/where_maker.rb', line 33 def make(filter, arel_column) predicates = normalize(filter.value).map do |coerced_value| method = FILTER_EVALUATORS[filter.class] raise ArgumentError, "cannot compile filter: #{filter}" unless method method.call(arel_column, coerced_value) end predicates.inject(predicates.shift) do |memo, predicate| memo.or(predicate) end end |