Module: Coinbase::Advanced::Concerns::FilterParam

Included in:
Configuration
Defined in:
lib/coinbase/advanced/concerns/filter_param.rb

Overview

FilterParam is a concern that provides a way to filter sensitive parameters from being logged Similar to rails filter_parameters https://api.rubyonrails.org/classes/ActionDispatch/Http/FilterParameters.html

Instance Method Summary collapse

Instance Method Details

#formatted_instance_variables ⇒ Object



14
15
16
17
18
19
# File 'lib/coinbase/advanced/concerns/filter_param.rb', line 14

def formatted_instance_variables
  instance_variables.sort.map do |var|
    value = @filter_params.include?(var) ? "[FILTERED]" : instance_variable_get(var).inspect
    "#{var}=#{value}"
  end
end

#inspect ⇒ Object



21
22
23
# File 'lib/coinbase/advanced/concerns/filter_param.rb', line 21

def inspect
  "#<#{self.class}: #{formatted_instance_variables.join(', ')}>"
end

#original_inspect ⇒ Object



10
11
12
# File 'lib/coinbase/advanced/concerns/filter_param.rb', line 10

def original_inspect
  inspect
end

#pretty_print(pp) ⇒ Object



25
26
27
28
29
30
31
32
33
34
# File 'lib/coinbase/advanced/concerns/filter_param.rb', line 25

def pretty_print(pp)
  pp.object_group(self) do
    instance_variables.sort.each do |var|
      pp.breakable
      value = @filter_params.include?(var) ? "[FILTERED]" : instance_variable_get(var)
      pp.text "#{var}="
      pp.pp value
    end
  end
end