Module: Unidom::Common::Concerns::SecureColumn::ClassMethods

Defined in:
app/models/unidom/common/concerns/secure_column.rb

Instance Method Summary collapse

Instance Method Details

#secure_column(name, fields: []) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'app/models/unidom/common/concerns/secure_column.rb', line 44

def secure_column(name, fields: [])

  name                = name.to_s
  self.secure_columns = self.secure_columns||{}
  if secure_columns[name].present?
    raise ArgumentError.new("The #{name} column was defined as a secure column already.")
  else
    secure_columns[name] = fields
  end
  fields.each do |field| attr_accessor field.to_sym if columns_hash[field.to_s].blank? end

  instance_eval do
    before_save do do_encrypt_secure_column name        end
    after_find  do do_decrypt_secure_column name.to_sym end
  end

end