Module: ActiveRecord::Acts::Decryptable::ClassMethods
- Defined in:
- lib/active_record/acts/decryptable.rb
Overview
class SomeModel < ActiveRecord::Base
acts_as_decryptable :encrypt => [:name, :email], :key => "SOME_KEY"
end
some_model_object.name = “name” some_model_object.save some_model_object.name # => “encrypted name” some_model_object.decrypted_name # => “name”
Instance Method Summary collapse
Instance Method Details
#acts_as_decryptable(options) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/active_record/acts/decryptable.rb', line 17 def acts_as_decryptable() cattr_accessor :encrypted_columns configuration = { :encrypt => [] } configuration.update() if .is_a?(Hash) raise "Valid key must be specified" unless configuration[:key] configuration[:encrypt].each do |field_name| class_eval <<-EOV def #{field_name}=(value) self[:#{field_name}] = SymmetricCrypto.encrypt(value, #{configuration[:key].to_json}) end def decrypt_#{field_name} SymmetricCrypto.decrypt(self[:#{field_name}], #{configuration[:key].to_json}) end EOV end class_eval <<-EOV include ActiveRecord::Acts::Decryptable::InstanceMethods EOV end |