Module: AttrEncryption::InstanceMethods
- Defined in:
- lib/attr_encryption.rb
Instance Method Summary collapse
-
#decrypt(attribute, encrypted_value) ⇒ Object
Decrypts a value for the attribute specified using options evaluated in the current object’s scope.
-
#encrypt(attribute, value) ⇒ Object
Encrypts a value for the attribute specified using options evaluated in the current object’s scope.
- #unencrypted_attributes ⇒ Object
Instance Method Details
#decrypt(attribute, encrypted_value) ⇒ Object
Decrypts a value for the attribute specified using options evaluated in the current object’s scope
Example
class User
attr_accessor :secret_key
attr_encrypted :email, :key => :secret_key
def initialize(secret_key)
self.secret_key = secret_key
end
end
@user = User.new('some-secret-key')
@user.decrypt(:email, 'SOME_ENCRYPTED_EMAIL_STRING')
298 299 300 |
# File 'lib/attr_encryption.rb', line 298 def decrypt(attribute, encrypted_value) self.class.decrypt(attribute, encrypted_value, (attribute)) end |
#encrypt(attribute, value) ⇒ Object
Encrypts a value for the attribute specified using options evaluated in the current object’s scope
Example
class User
attr_accessor :secret_key
attr_encrypted :email, :key => :secret_key
def initialize(secret_key)
self.secret_key = secret_key
end
end
@user = User.new('some-secret-key')
@user.encrypt(:email, '[email protected]')
317 318 319 |
# File 'lib/attr_encryption.rb', line 317 def encrypt(attribute, value) self.class.encrypt(attribute, value, (attribute)) end |
#unencrypted_attributes ⇒ Object
321 322 323 324 325 326 327 328 329 330 331 |
# File 'lib/attr_encryption.rb', line 321 def unencrypted_attributes attributes.each_with_object({}) do |a, new_hash| key = a.first value = a.last if key =~ /\A(.+)_enc\z/ key = $1 value = decrypt(key.to_sym, value) end new_hash[key] = value end end |