mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
c624df326a
Yaroslav agreed to hand over the gem name ❤️
34 lines
876 B
Ruby
34 lines
876 B
Ruby
require "active_storage/blob"
|
|
require "active_storage/attachment"
|
|
|
|
require "action_dispatch/http/upload"
|
|
require "active_support/core_ext/module/delegation"
|
|
|
|
class ActiveStorage::Attached
|
|
attr_reader :name, :record
|
|
|
|
def initialize(name, record)
|
|
@name, @record = name, record
|
|
end
|
|
|
|
private
|
|
def create_blob_from(attachable)
|
|
case attachable
|
|
when ActiveStorage::Blob
|
|
attachable
|
|
when ActionDispatch::Http::UploadedFile
|
|
ActiveStorage::Blob.create_after_upload! \
|
|
io: attachable.open,
|
|
filename: attachable.original_filename,
|
|
content_type: attachable.content_type
|
|
when Hash
|
|
ActiveStorage::Blob.create_after_upload!(attachable)
|
|
else
|
|
nil
|
|
end
|
|
end
|
|
end
|
|
|
|
require "active_storage/attached/one"
|
|
require "active_storage/attached/many"
|
|
require "active_storage/attached/macros"
|