module Rack::ActionLogger::ParameterFiltering

Public Class Methods

apply_filter(original_params) click to toggle source
# File lib/rack/action_logger/parameter_filtering.rb, line 7
def apply_filter(original_params)
  filtered_params = {}

  original_params.each do |key, value|
    if compiled_filters.any? { |r| key =~ r }
      value = FILTERED
    elsif value.is_a?(Hash)
      value = apply_filter(value)
    elsif value.is_a?(Array)
      value = value.map { |v| v.is_a?(Hash) ? apply_filter(v) : v }
    end

    filtered_params[key] = value
  end

  filtered_params
end

Private Class Methods

compile(filters) click to toggle source
# File lib/rack/action_logger/parameter_filtering.rb, line 31
def compile(filters)
  filter_strings = filters.map(&:to_s)
  filter_strings.map { |item| Regexp.compile(Regexp.escape(item)) }
end
compiled_filters() click to toggle source
# File lib/rack/action_logger/parameter_filtering.rb, line 27
def compiled_filters
  @compiled_filters ||= compile(Rack::ActionLogger.configuration.filters)
end