Class: Julewire::Rails::ParameterFilterPlan

Inherits:
Object
  • Object
show all
Defined in:
lib/julewire/rails/parameter_filter_plan.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(filters) ⇒ ParameterFilterPlan

Returns a new instance of ParameterFilterPlan.



28
29
30
# File 'lib/julewire/rails/parameter_filter_plan.rb', line 28

def initialize(filters)
  @simple_pattern = simple_filter_pattern(filters)
end

Class Method Details

.build(filters) ⇒ Object



10
11
12
13
14
15
16
17
18
# File 'lib/julewire/rails/parameter_filter_plan.rb', line 10

def build(filters)
  filters = Array(filters)
  return if filters.any? { it.is_a?(Regexp) || it.is_a?(Proc) }

  simple, deep = partition_filters(filters)
  return unless simple.any? && deep.empty?

  new(simple)
end

Instance Method Details

#filter_value(value) ⇒ Object



32
33
34
35
36
37
# File 'lib/julewire/rails/parameter_filter_plan.rb', line 32

def filter_value(value)
  return filter_hash(value) if value.is_a?(Hash)
  return filter_array(value) if value.is_a?(Array)

  value
end