class Resourcey::FilterProcessor

Constants

ALLOWED_OPTIONS

Attributes

block[R]
name[R]
opts[R]

Public Class Methods

new(name, opts = {}, &block) click to toggle source
# File lib/resourcey/filter_processor.rb, line 7
def initialize(name, opts = {}, &block)
  @name = name.to_s
  @opts = opts
  @block = block

  validate_options!
end

Public Instance Methods

apply(permitted_param, scope) click to toggle source
# File lib/resourcey/filter_processor.rb, line 15
def apply(permitted_param, scope)
  filter_value = parse_filter_value(permitted_param)
  block.call(filter_value, scope)
end

Private Instance Methods

parse_filter_value(permitted_param) click to toggle source
# File lib/resourcey/filter_processor.rb, line 24
def parse_filter_value(permitted_param)
  return permitted_param unless opts[:multivalue]
  permitted_param.split(',')
end
validate_options!() click to toggle source
# File lib/resourcey/filter_processor.rb, line 29
def validate_options!
  invalid_option = opts.keys.find { |option| ALLOWED_OPTIONS.exclude? option }
  return true if invalid_option.nil?
  raise Errors::OptionNotAllowed.new(invalid_option)
end