Module: Travis::Encrypt::Helpers::Sequel::ClassMethods

Defined in:
lib/travis/encrypt/helpers/sequel.rb

Instance Method Summary collapse

Instance Method Details

#attr_encrypted(*names) ⇒ Object



8
9
10
11
12
# File 'lib/travis/encrypt/helpers/sequel.rb', line 8

def attr_encrypted(*names)
  options = names.last.is_a?(Hash) ? names.pop : {}
  super
  define_encrypted_values(names, options)
end

#define_encrypted_values(names, options) ⇒ Object



14
15
16
17
18
19
20
21
# File 'lib/travis/encrypt/helpers/sequel.rb', line 14

def define_encrypted_values(names, options)
  define_method(:values) do
    super().inject({}) do |values, (name, value)|
      value = Encrypt.decrypt(value, options) if names.include?(name)
      values.merge(name => value)
    end
  end
end