Module: ActiveRecord::Encryption::EncryptedFixtures
| Relationships & Source Files | |
| Defined in: | activerecord/lib/active_record/encryption/encrypted_fixtures.rb |
Instance Method Summary
Instance Method Details
#encrypt(model_class, attribute_name, clean_value) (private)
[ GitHub ]# File 'activerecord/lib/active_record/encryption/encrypted_fixtures.rb', line 32
def encrypt(model_class, attribute_name, clean_value) encrypted_value = model_class.type_for_attribute(attribute_name).serialize(clean_value) if column = model_class.columns_hash[attribute_name.to_s] column.cast_type.deserialize(encrypted_value) else encrypted_value end end
#encrypt_fixture_data(fixture, model_class) (private)
[ GitHub ]# File 'activerecord/lib/active_record/encryption/encrypted_fixtures.rb', line 14
def encrypt_fixture_data(fixture, model_class) model_class&.encrypted_attributes&.each do |attribute_name| if clean_value = fixture[attribute_name.to_s] @clean_values[attribute_name.to_s] = clean_value fixture[attribute_name.to_s] = encrypt(model_class, attribute_name, clean_value) end end end
#initialize(fixture, model_class)
[ GitHub ]# File 'activerecord/lib/active_record/encryption/encrypted_fixtures.rb', line 6
def initialize(fixture, model_class) @clean_values = {} encrypt_fixture_data(fixture, model_class) process_preserved_original_columns(fixture, model_class) super end
#process_preserved_original_columns(fixture, model_class) (private)
[ GitHub ]# File 'activerecord/lib/active_record/encryption/encrypted_fixtures.rb', line 23
def process_preserved_original_columns(fixture, model_class) model_class&.encrypted_attributes&.each do |attribute_name| if source_attribute_name = model_class.source_attribute_from_preserved_attribute(attribute_name) clean_value = @clean_values[source_attribute_name.to_s] fixture[attribute_name.to_s] = encrypt(model_class, attribute_name, clean_value) end end end