class CarrierWaveBase64Uploader::Base64StringIO

Attributes

file_extension[RW]
file_name[RW]

Public Class Methods

new(encoded_file, file_name_proc_or_string) click to toggle source
Calls superclass method
# File lib/carrier_wave_base64_uploader/base64_string_io.rb, line 7
def initialize(encoded_file, file_name_proc_or_string)
  description, encoded_bytes = encoded_file.split(',')

  raise ArgumentError unless encoded_bytes
  raise ArgumentError if encoded_bytes.eql?('(null)')

  @file_name = extract_file_name(file_name_proc_or_string)
  @file_extension = get_file_extension description
  bytes = ::Base64.decode64 encoded_bytes

  super bytes
end

Public Instance Methods

original_filename() click to toggle source
# File lib/carrier_wave_base64_uploader/base64_string_io.rb, line 20
def original_filename
  File.basename("#{@file_name}.#{@file_extension}")
end

Private Instance Methods

extract_file_name(proc_or_string) click to toggle source
# File lib/carrier_wave_base64_uploader/base64_string_io.rb, line 35
def extract_file_name(proc_or_string)
  # if proc_or_string.is_a?(Proc)
  proc_or_string.call
  # else
  # proc_or_string
  # end
end
get_file_extension(description) click to toggle source
# File lib/carrier_wave_base64_uploader/base64_string_io.rb, line 26
def get_file_extension(description)
  content_type = description.split(';base64').first
  mime_type = MIME::Types[content_type].first

  raise ArgumentError, "Unknown MIME type: #{content_type}" unless mime_type

  mime_type.preferred_extension
end