Module: Shrine::Plugins::StoreDimensions::ClassMethods
- Defined in:
- lib/shrine/plugins/store_dimensions.rb
Instance Method Summary collapse
-
#dimensions_analyzer(name) ⇒ Object
Returns callable dimensions analyzer object.
-
#dimensions_analyzers ⇒ Object
Returns a hash of built-in dimensions analyzers, where keys are analyzer names and values are ‘#call`-able objects which accepts the IO object.
-
#extract_dimensions(io) ⇒ Object
(also: #dimensions)
Determines the dimensions of the IO object by calling the specified analyzer.
Instance Method Details
#dimensions_analyzer(name) ⇒ Object
Returns callable dimensions analyzer object.
57 58 59 60 61 |
# File 'lib/shrine/plugins/store_dimensions.rb', line 57 def dimensions_analyzer(name) on_error = opts[:store_dimensions][:on_error] DimensionsAnalyzer.new(name, on_error: on_error).method(:call) end |
#dimensions_analyzers ⇒ Object
Returns a hash of built-in dimensions analyzers, where keys are analyzer names and values are ‘#call`-able objects which accepts the IO object.
50 51 52 53 54 |
# File 'lib/shrine/plugins/store_dimensions.rb', line 50 def dimensions_analyzers @dimensions_analyzers ||= DimensionsAnalyzer::SUPPORTED_TOOLS.inject({}) do |hash, tool| hash.merge!(tool => dimensions_analyzer(tool)) end end |
#extract_dimensions(io) ⇒ Object Also known as: dimensions
Determines the dimensions of the IO object by calling the specified analyzer.
35 36 37 38 39 40 41 42 43 44 |
# File 'lib/shrine/plugins/store_dimensions.rb', line 35 def extract_dimensions(io) analyzer = opts[:store_dimensions][:analyzer] analyzer = dimensions_analyzer(analyzer) if analyzer.is_a?(Symbol) args = [io, dimensions_analyzers].take(analyzer.arity.abs) dimensions = instrument_dimensions(io) { analyzer.call(*args) } io.rewind dimensions end |