module RiceCooker::Filter::ClassMethods
Public Instance Methods
filter_exists?(name)
click to toggle source
Check if the given custom filter name already exists
# File lib/rice_cooker/filter.rb, line 127 def filter_exists?(name) !custom_filters[name].nil? end
filtered(additional_filtering_params = {})
click to toggle source
# File lib/rice_cooker/filter.rb, line 73 def filtered(additional_filtering_params = {}) cattr_accessor :filtering_keys cattr_accessor :custom_filters filter = FilterEngine.new(additional_filtering_params, resource_model) filter.register_bools # On recupere le default self.filtering_keys = filter.allowed_keys self.custom_filters = filter.params has_scope FILTER_PARAM, type: :hash, only: [:index] do |_controller, scope, value| scope = filter.process(value, scope, custom_filters, filtering_keys) scope end end
register_bool_filter(name, field, description = nil)
click to toggle source
Raccourci pour un filtre custom qui va filtrer si un champ est nil ou non.
name: le nom du filtre custom (ex: with_mark) field: le champ a filtrer sur `nil` ou pas `nil` (ex: final_mark) description: La description dans la doc
# File lib/rice_cooker/filter.rb, line 116 def register_bool_filter(name, field, description = nil) # raise "A '#{name}' filter already exists for class #{self.class}" unless filter_exists?(name) custom_filters[name] = { proc: FilterEngine.get_named_lambda(field), all: %w(true false), description: description || "Return only #{resource_model.to_s.underscore.humanize.downcase.pluralize} with a #{field}" } filtering_keys << name end
register_filter(name, proc, all = nil, description = nil)
click to toggle source
Ajoute un filtre custom
name: le nom du filtre custom (ex: with_mark) proc: le filtre, prend un arg `val` qui est un tableau des args du filtre all: l'ensemble des valeurs acceptées pour le filtre. Laisser nil ou pour tout accepter description: La description dans la doc
# File lib/rice_cooker/filter.rb, line 99 def register_filter(name, proc, all = nil, description = nil) # raise "A '#{name}' filter already exists for class #{self.class}" unless filter_exists?(name) custom_filters[name] = { proc: proc, all: all || [], description: description || '' } filtering_keys << name end