Class: GenericImageUploader

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

Overview

TODO Добавить настройку watermark_image, position

Direct Known Subclasses

MetaTagsImageUploader

Instance Method Summary collapse

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_propertiesObject



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_dirObject



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

#watermarkObject



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|
     = Magick::Image.read(Rails.root.join("app/assets/images/watermark.png")).first
    img.composite(, Magick::SouthEastGravity, 0, 0, Magick::OverCompositeOp)
  end
end