module Mongoid::Encryptable::ClassMethods

Public Instance Methods

encrypt_with(options = {}) click to toggle source

Set the encryption metadata for the model. Parameters set here will be used to encrypt the fields of the model, unless overridden on the field itself.

@param [ Hash ] options The encryption metadata. @option options [ String ] :key_id The base64-encoded UUID of the key

used to encrypt fields. Mutually exclusive with :key_name_field option.

@option options [ String ] :key_name_field The name of the field that

contains the key alt name to use for encryption. Mutually exclusive
with :key_id option.

@option options [ true | false ] :deterministic Whether the encryption is deterministic or not.

# File lib/mongoid/encryptable.rb, line 27
def encrypt_with(options = {})
  self.encrypt_metadata = options
end
encrypted?() click to toggle source

Whether the model is encrypted. It means that either the encrypt_with method was called on the model, or at least one of the fields is encrypted.

@return [ true | false ] Whether the model is encrypted.

# File lib/mongoid/encryptable.rb, line 36
def encrypted?
  !encrypt_metadata.empty? || fields.any? { |_, field| field.is_a?(Mongoid::Fields::Encrypted) }
end
set_key_id(key_id) click to toggle source

Override the key_id for the model.

This method is solely for testing purposes and should not be used in the application code. The schema_map is generated very early in the application lifecycle, and overriding the key_id after that will not have any effect.

@api private

# File lib/mongoid/encryptable.rb, line 48
def set_key_id(key_id)
  self.encrypt_metadata[:key_id] = key_id
end