Class: GenericImageUploader
- Inherits:
-
CarrierWave::Uploader::Base
- Object
- CarrierWave::Uploader::Base
- GenericImageUploader
- Includes:
- CarrierWave::MimeTypes, CarrierWave::RMagick
- Defined in:
- app/uploaders/generic_image_uploader.rb
Overview
TODO Добавить настройку watermark_image, position
Direct Known Subclasses
Instance Method Summary collapse
-
#capture_size_before_cache(new_file) ⇒ Object
def default_url “/assets/fallback/” + [version_name, “default.png”].compact.join(‘_’) end.
- #set_image_properties ⇒ Object
- #store_dir ⇒ Object
- #watermark ⇒ Object
Instance Method Details
#capture_size_before_cache(new_file) ⇒ Object
def default_url
"/assets/fallback/" + [version_name, "default.png"].compact.join('_')
end
35 36 37 38 39 40 41 42 43 |
# File 'app/uploaders/generic_image_uploader.rb', line 35 def capture_size_before_cache(new_file) return unless model return unless new_file.path if model.respond_to?(setter(:width)) && model.respond_to?(setter(:height)) w, h = `identify -format "%wx %h" #{new_file.path.shellescape}`.split(/x/).map { |dim| dim.to_i } model.send(setter(:width), w) model.send(setter(:height), h) end end |
#set_image_properties ⇒ Object
45 46 47 48 49 50 51 |
# File 'app/uploaders/generic_image_uploader.rb', line 45 def set_image_properties return if !model || !file model.send(setter(:file_name), file.filename) if model.respond_to?(setter(:file_name)) model.send(setter(:size), file.size) if model.respond_to?(setter(:size)) model.send(setter(:content_type), file.content_type) if model.respond_to?(setter(:content_type)) end |
#store_dir ⇒ Object
27 28 29 |
# File 'app/uploaders/generic_image_uploader.rb', line 27 def store_dir "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" end |
#watermark ⇒ Object
18 19 20 21 22 23 24 25 |
# File 'app/uploaders/generic_image_uploader.rb', line 18 def watermark return if !model || !model.respond_to?(getter(:watermarked?)) || !model.send(getter(:watermarked?)) manipulate! do |img| logo = Magick::Image.read(Rails.root.join("app/assets/images/watermark.png")).first img.composite(logo, Magick::SouthEastGravity, 0, 0, Magick::OverCompositeOp) end end |