Class: Julewire::Rails::ParameterFilterPlan

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(filters) ⇒ ParameterFilterPlan

Returns a new instance of ParameterFilterPlan.



24
25
26
27
28
29
# File 'lib/julewire/rails/parameter_filter_plan.rb', line 24

def initialize(filters)
  simple, deep = partition_filters(filters)
  @filtered_field_keys = build_filtered_field_keys(simple, deep)
  @direct_container_filter = simple.any? && deep.empty?
  @simple_pattern = simple_filter_pattern(simple) if @direct_container_filter
end

Instance Attribute Details

#filtered_field_keysObject (readonly)

Returns the value of attribute filtered_field_keys.



13
14
15
# File 'lib/julewire/rails/parameter_filter_plan.rb', line 13

def filtered_field_keys
  @filtered_field_keys
end

Class Method Details

.build(filters) ⇒ Object



16
17
18
19
20
21
# File 'lib/julewire/rails/parameter_filter_plan.rb', line 16

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

  new(filters)
end

Instance Method Details

#direct_container_filter?Boolean

Returns:

  • (Boolean)


31
# File 'lib/julewire/rails/parameter_filter_plan.rb', line 31

def direct_container_filter? = @direct_container_filter

#filter_value(value) ⇒ Object



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

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

  value
end