123456789_123456789_123456789_123456789_123456789_

Module: Mongoid::Encryptable::ClassMethods

Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Extended In:
Defined in: lib/mongoid/encryptable.rb

Instance Attribute Summary

Instance Method Summary

Instance Attribute Details

#encrypted?true | false (readonly)

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.

Returns:

  • (true | false)

    Whether the model is encrypted.

[ GitHub ]

  
# File 'lib/mongoid/encryptable.rb', line 36

def encrypted?
  !.empty? || fields.any? { |_, field| field.is_a?(Mongoid::Fields::Encrypted) }
end

Instance Method Details

#encrypt_with(options = {})

::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.

is deterministic or not.

Parameters:

  • options (Hash) (defaults to: {})

    The encryption metadata.

Options Hash (options):

  • :key_id (String)

    The base64-encoded UUID of the key used to encrypt fields. Mutually exclusive with :key_name_field option.

  • :key_name_field (String)

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

  • :deterministic (true | false)

    Whether the encryption

[ GitHub ]

  
# File 'lib/mongoid/encryptable.rb', line 27

def encrypt_with(options = {})
  self. = options
end

#set_key_id(key_id)

This method is for internal use only.

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.

[ GitHub ]

  
# File 'lib/mongoid/encryptable.rb', line 48

def set_key_id(key_id)
  self.[:key_id] = key_id
end