Module: AttrEncrypted::InstanceMethods

Defined in:
lib/attr_encrypted.rb

Instance Method Summary collapse

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')


326
327
328
329
330
# File 'lib/attr_encrypted.rb', line 326

def decrypt(attribute, encrypted_value)
  encrypted_attributes[attribute.to_sym][:operation] = :decrypting
  encrypted_attributes[attribute.to_sym][:value_present] = self.class.not_empty?(encrypted_value)
  self.class.decrypt(attribute, encrypted_value, evaluated_attr_encrypted_options_for(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]')


347
348
349
350
351
# File 'lib/attr_encrypted.rb', line 347

def encrypt(attribute, value)
  encrypted_attributes[attribute.to_sym][:operation] = :encrypting
  encrypted_attributes[attribute.to_sym][:value_present] = self.class.not_empty?(value)
  self.class.encrypt(attribute, value, evaluated_attr_encrypted_options_for(attribute))
end

#encrypted_attributesObject

Copies the class level hash of encrypted attributes with virtual attribute names as keys and their corresponding options as values to the instance



356
357
358
# File 'lib/attr_encrypted.rb', line 356

def encrypted_attributes
  @encrypted_attributes ||= self.class.encrypted_attributes.dup
end