class EncryptedField::Field

EncryptedField::Field adds the plain text methods to the class. Useful for hard coding the policy_name to the field during class creation.

Attributes

encrypted_field_name[R]
fallback_policy_name[R]
field_name[R]
policy_name[R]

Public Class Methods

new(field_name, encrypted_field_name, policy_name, fallback_policy_name = nil) click to toggle source
# File lib/encrypted-field/field.rb, line 12
def initialize(field_name, encrypted_field_name, policy_name, fallback_policy_name = nil)
  @field_name = field_name
  @encrypted_field_name = encrypted_field_name
  @policy_name = policy_name.to_s
  @fallback_policy_name = fallback_policy_name && fallback_policy_name.to_s
end

Public Instance Methods

add_methods(klass) click to toggle source
# File lib/encrypted-field/field.rb, line 19
    def add_methods(klass)
      klass.class_eval <<METHODS, __FILE__, __LINE__ + 1
def #{field_name}
  #{encrypted_field_name} && ::EncryptedField::Encoder.encoder.decrypt(#{encrypted_field_name}, #{fallback_policy_name.inspect})
end

def #{field_name}=(v)
  self.#{encrypted_field_name} = v && ::EncryptedField::Encoder.encoder.encrypt(v, #{policy_name.inspect})
end
METHODS
    end