Class: SimpleImageUploader
- Inherits:
-
CarrierWave::Uploader::Base
- Object
- CarrierWave::Uploader::Base
- SimpleImageUploader
- Includes:
- CarrierWave::MiniMagick
- Defined in:
- app/uploaders/simple_image_uploader.rb
Overview
Simple image uploader with scaling
Instance Method Summary collapse
-
#alt_text(default = '') ⇒ String
Text for image alt attribute.
- #default_url ⇒ Object
-
#extension_whitelist ⇒ Object
Add a white list of extensions which are allowed to be uploaded.
- #hd_url ⇒ Object
- #large_url ⇒ Object
- #medium_url ⇒ Object
- #preview_url ⇒ Object
- #raster? ⇒ Boolean
- #raster_image?(new_file) ⇒ Boolean
- #small_url ⇒ Object
-
#store_dir ⇒ Object
Override the directory where uploaded files will be stored.
Instance Method Details
#alt_text(default = '') ⇒ String
Text for image alt attribute
52 53 54 55 56 57 58 59 |
# File 'app/uploaders/simple_image_uploader.rb', line 52 def alt_text(default = '') method_name = "#{mounted_as}_alt_text".to_sym if model.respond_to?(method_name) model.send(method_name) else default end end |
#default_url ⇒ Object
18 19 20 |
# File 'app/uploaders/simple_image_uploader.rb', line 18 def default_url(*) ActionController::Base.helpers.asset_path('biovision/base/placeholders/1x1.svg') end |
#extension_whitelist ⇒ Object
Add a white list of extensions which are allowed to be uploaded. For images you might use something like this:
44 45 46 |
# File 'app/uploaders/simple_image_uploader.rb', line 44 def extension_whitelist %w[jpg jpeg png svg svgz] end |
#hd_url ⇒ Object
86 87 88 |
# File 'app/uploaders/simple_image_uploader.rb', line 86 def hd_url raster? ? hd.url : url end |
#large_url ⇒ Object
82 83 84 |
# File 'app/uploaders/simple_image_uploader.rb', line 82 def large_url raster? ? large.url : url end |
#medium_url ⇒ Object
78 79 80 |
# File 'app/uploaders/simple_image_uploader.rb', line 78 def medium_url raster? ? medium.url : url end |
#preview_url ⇒ Object
70 71 72 |
# File 'app/uploaders/simple_image_uploader.rb', line 70 def preview_url raster? ? preview.url : url end |
#raster? ⇒ Boolean
66 67 68 |
# File 'app/uploaders/simple_image_uploader.rb', line 66 def raster? !File.extname(path).match?(/\.svgz?\z/i) end |
#raster_image?(new_file) ⇒ Boolean
62 63 64 |
# File 'app/uploaders/simple_image_uploader.rb', line 62 def raster_image?(new_file) !new_file.extension.match?(/svgz?\z/i) end |
#small_url ⇒ Object
74 75 76 |
# File 'app/uploaders/simple_image_uploader.rb', line 74 def small_url raster? ? small.url : url 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:
11 12 13 14 15 16 |
# File 'app/uploaders/simple_image_uploader.rb', line 11 def store_dir id = model&.id.to_i slug = "#{id / 1000}/#{id}" "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{slug}" end |