class ActiveSupport::ParameterFilter::CompiledFilter

def value_for_key(key, value, parents = [], original_params = nil)

Experimental RBS support (using type sampling data from the type_fusion project).

type ActiveSupport__ParameterFilter__CompiledFilter_value_for_key_value = Array[String] | String | Integer | Symbol | nil | Hash | bool
type ActiveSupport__ParameterFilter__CompiledFilter_value_for_key_return_value = String | Integer | Symbol | nil | Hash | bool

def value_for_key: (String key, ActiveSupport__ParameterFilter__CompiledFilter_value_for_key_value value, ?Array[] parents, ?Hash? original_params) -> ActiveSupport__ParameterFilter__CompiledFilter_value_for_key_return_value

This signature was generated using 149 samples from 3 applications.

def value_for_key(key, value, parents = [], original_params = nil)
  parents.push(key) if deep_regexps
  if regexps.any? { |r| r.match?(key.to_s) }
    value = @mask
  elsif deep_regexps && (joined = parents.join(".")) && deep_regexps.any? { |r| r.match?(joined) }
    value = @mask
  elsif value.is_a?(Hash)
    value = call(value, parents, original_params)
  elsif value.is_a?(Array)
    # If we don't pop the current parent it will be duplicated as we
    # process each array value.
    parents.pop if deep_regexps
    value = value.map { |v| value_for_key(key, v, parents, original_params) }
    # Restore the parent stack after processing the array.
    parents.push(key) if deep_regexps
  elsif blocks.any?
    key = key.dup if key.duplicable?
    value = value.dup if value.duplicable?
    blocks.each { |b| b.arity == 2 ? b.call(key, value) : b.call(key, value, original_params) }
  end
  parents.pop if deep_regexps
  value
end