method
compile
v6.0.0 -
Show latest stable
- Class:
ActiveSupport::ParameterFilter::CompiledFilter
compile(filters, mask:)public
No documentation available.
# File activesupport/lib/active_support/parameter_filter.rb, line 60
def self.compile(filters, mask))
return lambda { |params| params.dup } if filters.empty?
strings, regexps, blocks = [], [], []
filters.each do |item|
case item
when Proc
blocks << item
when Regexp
regexps << item
else
strings << Regexp.escape(item.to_s)
end
end
deep_regexps = regexps.extract! { |r| r.to_s.include?("\\.") }
deep_strings = strings.extract! { |s| s.include?("\\.") }
regexps << Regexp.new(strings.join("|"), true) unless strings.empty?
deep_regexps << Regexp.new(deep_strings.join("|"), true) unless deep_strings.empty?
new regexps, deep_regexps, blocks, mask: mask
end