47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
# File 'lib/secure_attribute.rb', line 47
def attr_secure(name, options = {})
ensure_attribute_accessors_are_defined(name)
alias_method(attr_reader = "#{name}_without_secure_attribute", "#{name}")
alias_method(attr_writer = "#{name}_without_secure_attribute=", "#{name}=")
define_method("#{name}=") do |data|
if data && !data.empty?
send(attr_writer, SecureAttribute.encipher(options[:algorithm], data, options[:key]))
else
send(attr_writer, data)
end
end
define_method(name) do
if (data = send(attr_reader)) && !data.empty?
SecureAttribute.decipher(data, options[:key])
else
data
end
end
end
|