module Shrine::Plugins::StoreDimensions

Documentation can be found on shrinerb.com/docs/plugins/store_dimensions

Constants

LOG_SUBSCRIBER

Public Class Methods

configure(uploader, log_subscriber: LOG_SUBSCRIBER, **opts) click to toggle source
# File lib/shrine/plugins/store_dimensions.rb, line 14
def self.configure(uploader, log_subscriber: LOG_SUBSCRIBER, **opts)
  uploader.opts[:store_dimensions] ||= { analyzer: :fastimage, on_error: :warn, auto_extraction: true }
  uploader.opts[:store_dimensions].merge!(opts)

  # resolve error strategy
  uploader.opts[:store_dimensions][:on_error] =
    case uploader.opts[:store_dimensions][:on_error]
    when :fail   then -> (error) { fail error }
    when :warn   then -> (error) { Shrine.warn "Error occurred when attempting to extract image dimensions: #{error.inspect}" }
    when :ignore then -> (error) { }
    else
      uploader.opts[:store_dimensions][:on_error]
    end

  # instrumentation plugin integration
  uploader.subscribe(:image_dimensions, &log_subscriber) if uploader.respond_to?(:subscribe)
end