module Filterparams
Constants
- FILTER_BINDING_KEY
- ORDER_KEY
Public Class Methods
extract_query(data)
click to toggle source
# File lib/filterparams/api.rb, line 8 def extract_query(data) params = extract_params_hash data orders = extract_orders data filter = if data.key? FILTER_BINDING_KEY extract_filter data[FILTER_BINDING_KEY], params else auto_filter_for params end query = Filterparams::Query.new query.filter(filter).add_order_obj(*orders) end
Private Class Methods
auto_filter_for(params)
click to toggle source
# File lib/filterparams/api.rb, line 43 def auto_filter_for(params) params.values.inject do |left, right| Filterparams::And.new(left, right) end end
extract_filter(filter_string, params)
click to toggle source
# File lib/filterparams/api.rb, line 26 def extract_filter(filter_string, params) if filter_string.is_a? Array filter_string = filter_string[0] end parsed = Filterparams::BindingParser.new.parse(filter_string) Filterparams::BindingTransform.new(params).apply(parsed) end
extract_orders(params)
click to toggle source
# File lib/filterparams/api.rb, line 39 def extract_orders(params) Filterparams::OrderExtractor.new(params[ORDER_KEY] || []).orders end
extract_params_hash(params)
click to toggle source
# File lib/filterparams/api.rb, line 35 def extract_params_hash(params) Filterparams::ParamExtractor.new(params).params_hash end