Class: CustomFields::Types::File::FileUploader

Inherits:
CarrierWave::Uploader::Base show all
Includes:
CarrierWave::MimeTypes
Defined in:
lib/locomotive/custom_fields.rb

Instance Method Summary collapse

Methods inherited from CarrierWave::Uploader::Base

#build_store_dir, #to_label, #to_liquid

Methods included from CarrierWave::Uploader::Base64Download

#download!

Instance Method Details

#cache_dirObject



61
62
63
# File 'lib/locomotive/custom_fields.rb', line 61

def cache_dir
  "#{Rails.root}/tmp/uploads"
end

#guess_url(host = nil) ⇒ String

In some situations, for instance, for the notification email when a content entry is created, we need to know the url of the file without breaking the upload process. Actually, the uploaded file will be written on the filesystem after the email is sent.

Parameters:

  • host (String) (defaults to: nil)

    Required to build the full url in the Filesystem is used (optional)

Returns:

  • (String)

    The url to the soon uploaded file



50
51
52
53
54
55
56
57
58
59
# File 'lib/locomotive/custom_fields.rb', line 50

def guess_url(host = nil)
  this = self.class.new(model, mounted_as)
  this.retrieve_from_store!(model.read_uploader(mounted_as))

  if this.url =~ /^http/ || host.blank?
    this.url
  else
    URI.join("http://#{host}", this.url).to_s
  end
end

#image?Boolean

Returns:



38
39
40
# File 'lib/locomotive/custom_fields.rb', line 38

def image?
  !(content_type =~ /image/).nil?
end

#store_dirObject

Set correct paths



34
35
36
# File 'lib/locomotive/custom_fields.rb', line 34

def store_dir
  "sites/#{model.site_id}/#{model._type.demodulize.underscore}/#{model.id}/files"
end