Sha256: 6539763170112956561bb8aded9848b9c98c23890b7ad0ea4862084ba94f5042
Contents?: true
Size: 985 Bytes
Versions: 2
Compression:
Stored size: 985 Bytes
Contents
module Carrierwave module Base64 class Base64StringIO < StringIO attr_accessor :file_extension, :file_name def initialize(encoded_file, file_name) description, encoded_bytes = encoded_file.split(',') raise ArgumentError unless encoded_bytes raise ArgumentError if encoded_bytes.eql?('(null)') @file_name = file_name @file_extension = get_file_extension description bytes = ::Base64.decode64 encoded_bytes super bytes end def original_filename File.basename("#{@file_name}.#{@file_extension}") end private def get_file_extension(description) content_type = description.split(';base64').first mime_type = MIME::Types[content_type].first unless mime_type raise Carrierwave::Base64::UnknownMimeTypeError, "Unknown MIME type: #{content_type}" end mime_type.preferred_extension end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
carrierwave-base64-2.7.0 | lib/carrierwave/base64/base64_string_io.rb |
carrierwave-base64-2.6.1 | lib/carrierwave/base64/base64_string_io.rb |