class Resourcey::Filter
Public Class Methods
build_filter(filter_name, opts, &block)
click to toggle source
# File lib/resourcey/filter.rb, line 28 def build_filter(filter_name, opts, &block) FilterProcessor.new(filter_name, opts, &block) end
filter(filter_name, opts = {}, &block)
click to toggle source
# File lib/resourcey/filter.rb, line 20 def filter(filter_name, opts = {}, &block) self.allowed_params ||= [] self.allowed_params << filter_name self.filters ||= [] self.filters << build_filter(filter_name, opts, &block) end
new(params)
click to toggle source
# File lib/resourcey/filter.rb, line 6 def initialize(params) @permitted_params = params.permit(self.allowed_params) end
Public Instance Methods
apply(scope)
click to toggle source
# File lib/resourcey/filter.rb, line 10 def apply(scope) @permitted_params.each do |filter_name, permitted_param| filter = self.filters.find { |filter| filter.name == filter_name } scope = filter.apply(permitted_param, scope) end scope end