Class: ImageAssetUploader

Inherits:
CarrierWave::Uploader::Base
  • Object
show all
Includes:
CarrierWave::RMagick
Defined in:
app/uploaders/image_asset_uploader.rb

Instance Method Summary collapse

Instance Method Details

#dimensionsObject

Returns the dimensions of the image as a hash



15
16
17
18
19
20
21
22
# File 'app/uploaders/image_asset_uploader.rb', line 15

def dimensions
  @dimensions ||= begin
    if @file
      img = ::Magick::Image::read(@file.file).first
      { width: img.columns, height: img.rows }
    end
  end
end

#extension_white_listObject

Only allow images



59
60
61
# File 'app/uploaders/image_asset_uploader.rb', line 59

def extension_white_list
  %w(jpg jpeg gif png)
end

#scale(scale) ⇒ Object



24
25
26
27
28
29
30
31
32
33
# File 'app/uploaders/image_asset_uploader.rb', line 24

def scale(scale)
  width  = dimensions[:width]  * scale
  height = dimensions[:height] * scale

  manipulate! do |img|
    img.resize_to_fit!(width, height)
    img = yield(img) if block_given?
    img
  end
end

#store_dirObject

Override the directory where uploaded files will be stored. This is a sensible default for uploaders that are meant to be mounted:



37
38
39
# File 'app/uploaders/image_asset_uploader.rb', line 37

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

#store_geometryObject



8
9
10
11
12
# File 'app/uploaders/image_asset_uploader.rb', line 8

def store_geometry
  if model
    model.dimensions = dimensions
  end
end