Sha256: b2f8dbe7fc063b1e15ccc54fe88da225967036410b5bb2cab5c78f08ca1c7a4a
Contents?: true
Size: 842 Bytes
Versions: 1
Compression:
Stored size: 842 Bytes
Contents
# Helper method to decode a base64 file and create a StringIO file module ActiveStorageSupport module Base64Attach module_function def attachment_from_data(attachment) fill_attachment_data(attachment, attachment.delete(:data)) if attachment.is_a?(Hash) attachment end def fill_attachment_data(attachment, base64_data) return unless base64_data.try(:is_a?, String) && base64_data.strip.start_with?('data') headers, data = base64_data.split(',') decoded_data = Base64.decode64(data) attachment[:io] = StringIO.new(decoded_data) attachment[:content_type] ||= content_type(headers) attachment[:filename] ||= Time.current.to_i.to_s end def content_type(headers) headers =~ /^data:(.*?)$/ Regexp.last_match(1).split(';base64').first end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
active_storage_base64-0.1.3 | lib/active_storage_support/base64_attach.rb |