module Shrine::Plugins::InferExtension::ClassMethods

Public Instance Methods

extension_inferrer(name) click to toggle source
# File lib/shrine/plugins/infer_extension.rb, line 39
def extension_inferrer(name)
  ExtensionInferrer.new(name).method(:call)
end
extension_inferrers() click to toggle source
# File lib/shrine/plugins/infer_extension.rb, line 33
def extension_inferrers
  @extension_inferrers ||= ExtensionInferrer::SUPPORTED_TOOLS.inject({}) do |hash, tool|
    hash.merge!(tool => extension_inferrer(tool))
  end
end
infer_extension(mime_type) click to toggle source
# File lib/shrine/plugins/infer_extension.rb, line 25
def infer_extension(mime_type)
  inferrer = opts[:infer_extension][:inferrer]
  inferrer = extension_inferrer(inferrer) if inferrer.is_a?(Symbol)
  args     = [mime_type, extension_inferrers].take(inferrer.arity.abs)

  instrument_extension(mime_type) { inferrer.call(*args) }
end

Private Instance Methods

instrument_extension(mime_type) { || ... } click to toggle source

Sends a ‘extension.shrine` event for instrumentation plugin.

# File lib/shrine/plugins/infer_extension.rb, line 46
def instrument_extension(mime_type, &block)
  return yield unless respond_to?(:instrument)

  instrument(:extension, mime_type: mime_type, &block)
end