Module: Sequel::Plugins::AttrEncrypted::ClassMethods

Defined in:
lib/sequel/plugins/attr_encrypted.rb

Instance Method Summary collapse

Instance Method Details

#attr_encrypted(*attrs, key:) ⇒ Object

Order.create(first_name: “Ivan”)

# => INSERT INTO "orders" ("encrypted_first_name")
            VALUES ('/sTi9Q==$OTpuMRq5k8R3JayQ$WjSManQGP9UaZ3C40yDjKg==')

order = Order.create(first_name: "Ivan", last_name: "Smith",
                     secret_data: { "some_key" => "Some Value" })
order.first_name # => "Ivan"
order.last_name # => "Smith"
order.secret_data # => { "some_key" => "Some Value" }


38
39
40
41
42
43
44
45
# File 'lib/sequel/plugins/attr_encrypted.rb', line 38

def attr_encrypted(*attrs, key:)
  include_encrypted_module!
  attrs.each do |attr|
    define_encrypted_setter(attr, key)
    define_encrypted_getter(attr, key)
    @_encrypted_attributes << attr
  end
end