Class: ImageAssetUploader
- Inherits:
-
CarrierWave::Uploader::Base
- Object
- CarrierWave::Uploader::Base
- ImageAssetUploader
- Includes:
- CarrierWave::RMagick
- Defined in:
- app/uploaders/image_asset_uploader.rb
Instance Method Summary collapse
-
#dimensions ⇒ Object
Returns the dimensions of the image as a hash.
-
#extension_white_list ⇒ Object
Only allow images.
- #scale(scale) ⇒ Object
-
#store_dir ⇒ Object
Override the directory where uploaded files will be stored.
- #store_geometry ⇒ Object
Instance Method Details
#dimensions ⇒ Object
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_list ⇒ Object
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_dir ⇒ Object
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_geometry ⇒ Object
8 9 10 11 12 |
# File 'app/uploaders/image_asset_uploader.rb', line 8 def store_geometry if model model.dimensions = dimensions end end |