class ActiveRecord::Encryption::Scheme

def initialize(key_provider: nil, key: nil, deterministic: nil, downcase: nil, ignore_case: nil,

def initialize(key_provider: nil, key: nil, deterministic: nil, downcase: nil, ignore_case: nil,
               previous_schemes: nil, **context_properties)
  # Initializing all attributes to +nil+ as we want to allow a "not set" semantics so that we
  # can merge schemes without overriding values with defaults. See +#merge+
  @key_provider_param = key_provider
  @key = key
  @deterministic = deterministic
  @downcase = downcase || ignore_case
  @ignore_case = ignore_case
  @previous_schemes_param = previous_schemes
  @previous_schemes = Array.wrap(previous_schemes)
  @context_properties = context_properties
  validate_config!
end