Module: ActiveRecord::Encryption::EncryptableRecord
- Extended by:
- ActiveSupport::Concern
- Included in:
- Base
- Defined in:
- lib/active_record/encryption/encryptable_record.rb
Overview
This is the concern mixed in Active Record models to make them encryptable. It adds the encrypts
attribute declaration, as well as the API to encrypt and decrypt records.
Instance Method Summary collapse
-
#ciphertext_for(attribute_name) ⇒ Object
Returns the ciphertext for
attribute_name
. -
#decrypt ⇒ Object
Decrypts all the encryptable attributes and saves the changes.
-
#encrypt ⇒ Object
Encrypts all the encryptable attributes and saves the changes.
-
#encrypted_attribute?(attribute_name) ⇒ Boolean
Returns whether a given attribute is encrypted or not.
Instance Method Details
#ciphertext_for(attribute_name) ⇒ Object
Returns the ciphertext for attribute_name
.
157 158 159 160 161 162 163 |
# File 'lib/active_record/encryption/encryptable_record.rb', line 157 def ciphertext_for(attribute_name) if encrypted_attribute?(attribute_name) read_attribute_before_type_cast(attribute_name) else read_attribute_for_database(attribute_name) end end |
#decrypt ⇒ Object
Decrypts all the encryptable attributes and saves the changes.
171 172 173 |
# File 'lib/active_record/encryption/encryptable_record.rb', line 171 def decrypt decrypt_attributes if has_encrypted_attributes? end |
#encrypt ⇒ Object
Encrypts all the encryptable attributes and saves the changes.
166 167 168 |
# File 'lib/active_record/encryption/encryptable_record.rb', line 166 def encrypt encrypt_attributes if has_encrypted_attributes? end |
#encrypted_attribute?(attribute_name) ⇒ Boolean
Returns whether a given attribute is encrypted or not.
146 147 148 149 150 151 152 153 154 |
# File 'lib/active_record/encryption/encryptable_record.rb', line 146 def encrypted_attribute?(attribute_name) name = attribute_name.to_s name = self.class.attribute_aliases[name] || name return false unless self.class.encrypted_attributes&.include? name.to_sym type = type_for_attribute(name) type.encrypted? read_attribute_before_type_cast(name) end |