Class: EncryptedField::Field

Inherits:
Object
  • Object
show all
Defined in:
lib/encrypted-field/field.rb

Overview

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(field_name, encrypted_field_name, policy_name, fallback_policy_name = nil) ⇒ Field

Returns a new instance of Field.



12
13
14
15
16
17
# 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

Instance Attribute Details

#encrypted_field_nameObject (readonly)

Returns the value of attribute encrypted_field_name.



7
8
9
# File 'lib/encrypted-field/field.rb', line 7

def encrypted_field_name
  @encrypted_field_name
end

#fallback_policy_nameObject (readonly)

Returns the value of attribute fallback_policy_name.



7
8
9
# File 'lib/encrypted-field/field.rb', line 7

def fallback_policy_name
  @fallback_policy_name
end

#field_nameObject (readonly)

Returns the value of attribute field_name.



7
8
9
# File 'lib/encrypted-field/field.rb', line 7

def field_name
  @field_name
end

#policy_nameObject (readonly)

Returns the value of attribute policy_name.



7
8
9
# File 'lib/encrypted-field/field.rb', line 7

def policy_name
  @policy_name
end

Instance Method Details

#add_methods(klass) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
# File 'lib/encrypted-field/field.rb', line 19

def add_methods(klass)
  klass.class_eval "def \#{field_name}\n  \#{encrypted_field_name} && ::EncryptedField::Encoder.encoder.decrypt(\#{encrypted_field_name}, \#{fallback_policy_name.inspect})\nend\n\ndef \#{field_name}=(v)\n  self.\#{encrypted_field_name} = v && ::EncryptedField::Encoder.encoder.encrypt(v, \#{policy_name.inspect})\nend\n", __FILE__, __LINE__ + 1
end