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