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