- C
- D
- F
- I
- K
- M
- N
- S
- T
- W
属性
[RW] | previous_schemes |
类公共方法
new(key_provider: nil, key: nil, deterministic: nil, support_unencrypted_data: nil, downcase: nil, ignore_case: nil, previous_schemes: nil, **context_properties) 链接
源代码: 显示 | 在 GitHub 上
# File activerecord/lib/active_record/encryption/scheme.rb, line 13 def initialize(key_provider: nil, key: nil, deterministic: nil, support_unencrypted_data: 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 @support_unencrypted_data = support_unencrypted_data @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
实例公共方法
compatible_with?(other_scheme) 链接
源代码: 显示 | 在 GitHub 上
# File activerecord/lib/active_record/encryption/scheme.rb, line 73 def compatible_with?(other_scheme) deterministic? == other_scheme.deterministic? end
deterministic?() 链接
源代码: 显示 | 在 GitHub 上
# File activerecord/lib/active_record/encryption/scheme.rb, line 39 def deterministic? !!@deterministic end
downcase?() 链接
来源: 显示 | 在 GitHub 上
# File activerecord/lib/active_record/encryption/scheme.rb, line 35 def downcase? @downcase end
fixed?() 链接
来源: 显示 | 在 GitHub 上
# File activerecord/lib/active_record/encryption/scheme.rb, line 47 def fixed? # by default deterministic encryption is fixed @fixed ||= @deterministic && (!@deterministic.is_a?(Hash) || @deterministic[:fixed]) end
ignore_case?() 链接
来源: 显示 | 在 GitHub 上
# File activerecord/lib/active_record/encryption/scheme.rb, line 31 def ignore_case? @ignore_case end
key_provider() 链接
来源: 显示 | 在 GitHub 上
# File activerecord/lib/active_record/encryption/scheme.rb, line 52 def key_provider @key_provider ||= @key_provider_param || build_key_provider || default_key_provider end
merge(other_scheme) 链接
来源: 显示 | 在 GitHub 上
# File activerecord/lib/active_record/encryption/scheme.rb, line 56 def merge(other_scheme) self.class.new(**to_h.merge(other_scheme.to_h)) end
support_unencrypted_data?() 链接
来源: 显示 | 在 GitHub 上
# File activerecord/lib/active_record/encryption/scheme.rb, line 43 def support_unencrypted_data? @support_unencrypted_data.nil? ? ActiveRecord::Encryption.config.support_unencrypted_data : @support_unencrypted_data end
to_h() 链接
来源: 显示 | 在 GitHub 上
# File activerecord/lib/active_record/encryption/scheme.rb, line 60 def to_h { key_provider: @key_provider_param, deterministic: @deterministic, downcase: @downcase, ignore_case: @ignore_case, previous_schemes: @previous_schemes_param, **@context_properties }.compact end
with_context(&block) 链接
来源: 显示 | 在 GitHub 上
# File activerecord/lib/active_record/encryption/scheme.rb, line 65 def with_context(&block) if @context_properties.present? ActiveRecord::Encryption.with_encryption_context(**@context_properties, &block) else block.call end end