add encryptable_concern

Co-authored-by: François VANTOMME <akarzim@gmail.com>
This commit is contained in:
simon lehericey 2021-07-16 16:59:09 +02:00
parent 17b659539f
commit 66c35fdffe

View file

@ -0,0 +1,21 @@
module EncryptableConcern
extend ActiveSupport::Concern
class_methods do
def attr_encrypted(*attributes)
attributes.each do |attribute|
define_method("#{attribute}=".to_sym) do |value|
self.public_send(
"encrypted_#{attribute}=".to_sym,
EncryptionService.new.encrypt(value)
)
end
define_method(attribute) do
value = self.public_send("encrypted_#{attribute}".to_sym)
EncryptionService.new.decrypt(value) if value.present?
end
end
end
end
end