Class: ParameterFilter

Inherits:
Object
  • Object
show all
Defined in:
lib/parameter_filter.rb

Constant Summary collapse

FILTERED =
'[FILTERED]'.freeze

Instance Method Summary collapse

Constructor Details

#initialize(filters) ⇒ ParameterFilter

Returns a new instance of ParameterFilter.



4
5
6
# File 'lib/parameter_filter.rb', line 4

def initialize(filters)
  @filters = filters.map(&:to_s)
end

Instance Method Details

#call(params, parents = []) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/parameter_filter.rb', line 8

def call(params, parents = [])
  return params unless params.is_a?(Hash)
  filtered_params = {}

  params.each do |key, value|
    parents.push(key)
    if value.is_a?(Hash)
      value = call(value, parents)
    else
      joined = parents.join('.')
      value = FILTERED if @filters.include?(joined)
    end
    parents.pop
    filtered_params[key] = value
  end

  filtered_params
end