Carrierwave processing facts

Updated . Posted . Visible to the public. Repeats.
  1. Class-level process definitions are only applied to the original file
  2. Versions are generated based on the processed original file
  3. Callbacks (before/after) are applied to original file and each version by itself
  4. Under the hood, a version is an instance of the uploader class that has no versions
  5. Version uploader and original uploader can be distinguished by checking #version_name: version uploaders return the version name, whereas the original uploader instance returns nil
  6. Version instances do not have a reference to their parent uploader
class DemoUploader < CarrierWave::Uploader::Base

  process :resize # 1

  before :cache, :do_something # 3

  version :thumb do # 2
    process :crop
  end

  private

  def do_something(file)
    case version_name # 5
    # ...
  end

end
Profile picture of Dominik Schöler
Dominik Schöler
Last edit
Michael Leimstädtner
License
Source code in this card is licensed under the MIT License.
Posted by Dominik Schöler to makandra dev (2019-02-21 15:26)