Sha256: 9fc08d1c47e6f01d2d88af1f29e6a9900e0d061245ffa6c446b500c509f4763d

Contents?: true

Size: 917 Bytes

Versions: 10

Compression:

Stored size: 917 Bytes

Contents

# frozen_string_literal: true

# t.string :attr_name, null: false
# t.string :deleted_ids, default: ''
# t.boolean :clean_before, default: false
# t.text :files

module ActivestorageDelayed
  class DelayedUpload < ActiveRecord::Base
    self.table_name = 'activestorage_delayed_uploads'
    attr_accessor :tmp_files

    belongs_to :uploadable, polymorphic: true, touch: true

    before_save :parse_tmp_files
    after_create_commit do
      ActivestorageDelayed::DelayedUploaderJob.perform_later(id)
    end

    private

    def parse_tmp_files
      self.files = (tmp_files.is_a?(Array) ? tmp_files : [tmp_files]).select(&:present?).map do |file|
        {
          'io' => Base64.encode64(file.read),
          'filename' => file.try(:original_filename) || File.basename(file.path),
          'content_type' => file.try(:content_type) || Marcel::MimeType.for(file)
        }
      end.to_json
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
activestorage-delayed-0.3.7 lib/activestorage-delayed/models/delayed_upload.rb
activestorage-delayed-0.3.5 lib/activestorage-delayed/models/delayed_upload.rb
activestorage-delayed-0.3.4 lib/activestorage-delayed/models/delayed_upload.rb
activestorage-delayed-0.3.3 lib/activestorage-delayed/models/delayed_upload.rb
activestorage-delayed-0.3.2 lib/activestorage-delayed/models/delayed_upload.rb
activestorage-delayed-0.3.1 lib/activestorage-delayed/models/delayed_upload.rb
activestorage-delayed-0.3.0 lib/activestorage-delayed/models/delayed_upload.rb
activestorage-delayed-0.2.0 lib/activestorage-delayed/models/delayed_upload.rb
activestorage-delayed-0.2.0.pre.pre lib/activestorage-delayed/models/delayed_upload.rb
activestorage-delayed-0.1.4 lib/activestorage-delayed/models/delayed_upload.rb