Sha256: 43ed2ba900fa00c6a5e1ebb60b2b4e14693e67512756caec1564d9d7b5a33b4d
Contents?: true
Size: 1.02 KB
Versions: 20
Compression:
Stored size: 1.02 KB
Contents
module Godmin module Resources module ResourceService module Filters extend ActiveSupport::Concern delegate :filter_map, to: "self.class" def apply_filters(filter_params, resources) if filter_params.present? filter_params.each do |name, value| if apply_filter?(name, value) resources = send("filter_#{name}", resources, value) end end end resources end private def apply_filter?(name, value) return false if value == [""] filter_map.key?(name.to_sym) && value.present? end module ClassMethods def filter_map @filter_map ||= {} end def filter(attr, options = {}) filter_map[attr] = { as: :string, option_text: "to_s", option_value: "id", collection: nil }.merge(options) end end end end end end
Version data entries
20 entries across 20 versions & 1 rubygems