module Lockbox::Model::Attached

Public Class Methods

lockbox_attachments() click to toggle source
# File lib/lockbox/model.rb, line 571
def self.lockbox_attachments
  parent_attachments =
    if superclass.respond_to?(:lockbox_attachments)
      superclass.lockbox_attachments
    else
      {}
    end

  parent_attachments.merge(@lockbox_attachments || {})
end

Public Instance Methods

encrypts_attached(*attributes, **options) click to toggle source
# File lib/lockbox/model.rb, line 563
def encrypts_attached(*attributes, **options)
  attributes.each do |name|
    name = name.to_sym

    class_eval do
      @lockbox_attachments ||= {}

      if @lockbox_attachments.empty?
        def self.lockbox_attachments
          parent_attachments =
            if superclass.respond_to?(:lockbox_attachments)
              superclass.lockbox_attachments
            else
              {}
            end

          parent_attachments.merge(@lockbox_attachments || {})
        end
      end

      raise "Duplicate encrypted attachment: #{name}" if lockbox_attachments[name]
      @lockbox_attachments[name] = options
    end
  end
end