Object
# File lib/action_dispatch/http/parameter_filter.rb, line 51
51: def compile_filter
52: strings, regexps, blocks = [], [], []
53:
54: @filters.each do |item|
55: case item
56: when NilClass
57: when Proc
58: blocks << item
59: when Regexp
60: regexps << item
61: else
62: strings << item.to_s
63: end
64: end
65:
66: regexps << Regexp.new(strings.join('|'), true) unless strings.empty?
67: [regexps, blocks]
68: end
# File lib/action_dispatch/http/parameter_filter.rb, line 23
23: def compiled_filter
24: @compiled_filter ||= begin
25: regexps, blocks = compile_filter
26:
27: lambda do |original_params|
28: filtered_params = {}
29:
30: original_params.each do |key, value|
31: if regexps.find { |r| key =~ r }
32: value = '[FILTERED]'
33: elsif value.is_a?(Hash)
34: value = filter(value)
35: elsif value.is_a?(Array)
36: value = value.map { |v| v.is_a?(Hash) ? filter(v) : v }
37: elsif blocks.present?
38: key = key.dup
39: value = value.dup if value.duplicable?
40: blocks.each { |b| b.call(key, value) }
41: end
42:
43: filtered_params[key] = value
44: end
45:
46: filtered_params
47: end
48: end
49: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.