Sha256: 5139d540754ab0923c2077bd0167d31da7b58f604d3a6c6601f18aaf2b2598d0
Contents?: true
Size: 656 Bytes
Versions: 5
Compression:
Stored size: 656 Bytes
Contents
module Headmin class Filters # Example: # # @orders = Headmin::Filters.new(params, { # status: :text, # price: :number, # in_stock: :boolean # }).query(Order) def initialize(params, param_types) @params = params @param_types = param_types end def parse(attribute, type) class_name = "Headmin::Filter::#{type.to_s.classify}".constantize class_name.new(attribute, @params) end def query(collection) @param_types.each do |attribute, type| filter = parse(attribute, type) collection = filter.query(collection) end collection end end end
Version data entries
5 entries across 5 versions & 1 rubygems