Module: Shrine::Plugins::StoreDimensions
- Defined in:
- lib/shrine/plugins/store_dimensions.rb
Overview
Documentation lives in [doc/plugins/store_dimensions.md] on GitHub.
[doc/plugins/store_dimensions.md]: github.com/shrinerb/shrine/blob/master/doc/plugins/store_dimensions.md
Defined Under Namespace
Modules: ClassMethods, FileMethods, InstanceMethods Classes: DimensionsAnalyzer
Constant Summary collapse
- LOG_SUBSCRIBER =
-> (event) do Shrine.logger.info "Image Dimensions (#{event.duration}ms) – #{{ io: event[:io].class, uploader: event[:uploader], }.inspect}" end
Class Method Summary collapse
Class Method Details
.configure(uploader, opts = {}) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/shrine/plugins/store_dimensions.rb', line 16 def self.configure(uploader, opts = {}) uploader.opts[:store_dimensions] ||= { analyzer: :fastimage, on_error: :warn, log_subscriber: LOG_SUBSCRIBER } uploader.opts[:store_dimensions].merge!(opts) # resolve error strategy case uploader.opts[:store_dimensions][:on_error] when :fail uploader.opts[:store_dimensions][:on_error] = -> (error) { fail error } when :warn uploader.opts[:store_dimensions][:on_error] = -> (error) { Shrine.warn "Error occurred when attempting to extract image dimensions: #{error.inspect}" } when :ignore uploader.opts[:store_dimensions][:on_error] = -> (error) { } end # instrumentation plugin integration if uploader.respond_to?(:subscribe) uploader.subscribe(:image_dimensions, &uploader.opts[:store_dimensions][:log_subscriber]) end end |