Class: Integral::ImageUploader

Inherits:
CarrierWave::Uploader::Base
  • Object
show all
Includes:
CarrierWave::Backgrounder::Delay, CarrierWave::ImageOptimizer, CarrierWave::MiniMagick
Defined in:
app/uploaders/integral/image_uploader.rb

Overview

Handles uploading images

Direct Known Subclasses

AvatarUploader

Instance Method Summary collapse

Instance Method Details

#extension_white_listObject

Extension white list



18
19
20
# File 'app/uploaders/integral/image_uploader.rb', line 18

def extension_white_list
  %w[jpg jpeg gif png]
end

#filenameObject

Override the filename of the uploaded files



28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'app/uploaders/integral/image_uploader.rb', line 28

def filename
  return unless original_filename

  filename = if model.respond_to?("#{mounted_as}_filename")
               model.send("#{mounted_as}_filename")
             else
               model.title.parameterize
             end

  # Safe-guard against customized filename methods or parameterize returning an empty string
  return original_filename if filename.blank?

  "#{filename}.#{file.extension}"
end

#full_filename(for_file) ⇒ Object

Override full_filename to set version name at the end



57
58
59
60
61
62
63
# File 'app/uploaders/integral/image_uploader.rb', line 57

def full_filename(for_file)
  parent_name = super(for_file)
  extension = File.extname(parent_name)
  base_name = parent_name.chomp(extension)
  base_name = base_name[version_name.size.succ..-1] if version_name
  [base_name, version_name].compact.join('-') + extension
end

#full_original_filenameObject

Override full_original_filename to set version name at the end



66
67
68
69
70
71
72
# File 'app/uploaders/integral/image_uploader.rb', line 66

def full_original_filename
  parent_name = super
  extension = File.extname(parent_name)
  base_name = parent_name.chomp(extension)
  base_name = base_name[version_name.size.succ..-1] if version_name
  [base_name, version_name].compact.join('-') + extension
end

#store_dirObject

Override the directory where uploaded files will be stored.



13
14
15
# File 'app/uploaders/integral/image_uploader.rb', line 13

def store_dir
  "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end

#url(*args) ⇒ Object

Return original URL if processing hasn’t been complete (no versions available)



44
45
46
47
48
49
50
51
52
53
54
# File 'app/uploaders/integral/image_uploader.rb', line 44

def url(*args)
  version_name, = args

  if model.send("#{mounted_as}_processing?".to_sym)
    # Without Args
    super()
  else
    # With Args
    super
  end
end