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

Instance Method Details

#cache_dirObject



63
64
65
# File 'lib/locomotive/custom_fields.rb', line 63

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



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

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

#store_dirObject

Set correct paths



40
41
42
# File 'lib/locomotive/custom_fields.rb', line 40

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