Class: CarrierWave::Uploader::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/carrierwave/serialization.rb

Constant Summary collapse

@@json_with_raw_data =
false

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.json_with_raw_dataObject



9
10
11
# File 'lib/carrierwave/serialization.rb', line 9

def self.json_with_raw_data
  @@json_with_raw_data
end

.json_with_raw_data=(bool) ⇒ Object



5
6
7
# File 'lib/carrierwave/serialization.rb', line 5

def self.json_with_raw_data=(bool)
  @@json_with_raw_data = bool
end

Instance Method Details

#serializable_hash(options = nil) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/carrierwave/serialization.rb', line 13

def serializable_hash(options = nil)
  if @@json_with_raw_data
    if url
      mime = MIME::Types.type_for(file.file)[0].to_s
      md5 = Digest::MD5.file(file.file).to_s
      filename = Pathname.new(file.file).basename.to_s
      base64 = 'data:' + mime + ';base64,' + Base64.strict_encode64(read)
      {url: url, name: filename, data: base64, md5: md5}
    else
      {url: nil, name: nil, data: nil, md5: nil}
    end
  else
    {"url" => url}.merge Hash[versions.map { |name, version| [name, { "url" => version.url }] }]
  end
end