class Loga::ParameterFilter::CompiledFilter
Attributes
regexps[R]
Public Class Methods
compile(filters)
click to toggle source
# File lib/loga/parameter_filter.rb, line 22 def self.compile(filters) ->(params) { params.dup } if filters.empty? regexps = [] strings = [] filters.each do |item| if item.is_a?(Regexp) regexps << item else strings << Regexp.escape(item.to_s) end end regexps << Regexp.new(strings.join('|'), true) unless strings.empty? new regexps end
new(regexps)
click to toggle source
# File lib/loga/parameter_filter.rb, line 42 def initialize(regexps) @regexps = regexps end
Public Instance Methods
call(original_params)
click to toggle source
# File lib/loga/parameter_filter.rb, line 46 def call(original_params) filtered_params = {} original_params.each do |key, value| if regexps.any? { |r| key =~ r } value = FILTERED elsif value.is_a?(Hash) value = call(value) elsif value.is_a?(Array) value = value.map { |v| v.is_a?(Hash) ? call(v) : v } end filtered_params[key] = value end filtered_params end