Module: DataRedactor::Integrations::Rails
- Defined in:
- lib/data_redactor/integrations/rails.rb
Overview
Rails ‘config.filter_parameters` adapter. Returns a `Proc` that Rails invokes with `(key, value)` for every leaf in the params tree; we redact the value in place when it is a String.
Class Method Summary collapse
-
.filter(only: nil, except: nil, placeholder: DataRedactor::PLACEHOLDER_DEFAULT) ⇒ Proc
A ‘(key, value)` proc compatible with `config.filter_parameters`.
Class Method Details
.filter(only: nil, except: nil, placeholder: DataRedactor::PLACEHOLDER_DEFAULT) ⇒ Proc
Returns a ‘(key, value)` proc compatible with `config.filter_parameters`.
27 28 29 30 31 32 33 34 35 |
# File 'lib/data_redactor/integrations/rails.rb', line 27 def filter(only: nil, except: nil, placeholder: DataRedactor::PLACEHOLDER_DEFAULT) lambda do |_key, value| next unless value.is_a?(String) # Rails' Parameter Filter mutates the value in place. We can't # reassign `value` here, so use String#replace. redacted = DataRedactor.redact(value, only: only, except: except, placeholder: placeholder) value.replace(redacted) if redacted != value end end |