module Pragma::Macro::Filtering
Public Class Methods
for(_input, options)
click to toggle source
# File lib/pragma/macro/filtering.rb, line 12 def for(_input, options) set_defaults(options) options['model'] = apply_filtering(options) true end
Private Class Methods
apply_filtering(options)
click to toggle source
# File lib/pragma/macro/filtering.rb, line 30 def apply_filtering(options) relation = options['model'] options['filtering.filters'].each do |filter| value = options['params'][filter.param] next unless value.present? relation = filter.apply(relation: relation, value: value) end relation end
set_defaults(options)
click to toggle source
# File lib/pragma/macro/filtering.rb, line 22 def set_defaults(options) { 'filtering.filters' => [] }.each_pair do |key, value| options[key] = value unless options[key] end end