Module: Shrine::Plugins::InferExtension::ClassMethods

Defined in:
lib/shrine/plugins/infer_extension.rb

Instance Method Summary collapse

Instance Method Details

#extension_inferrer(name) ⇒ Object



41
42
43
# File 'lib/shrine/plugins/infer_extension.rb', line 41

def extension_inferrer(name)
  ExtensionInferrer.new(name).method(:call)
end

#extension_inferrersObject



35
36
37
38
39
# File 'lib/shrine/plugins/infer_extension.rb', line 35

def extension_inferrers
  @extension_inferrers ||= ExtensionInferrer::SUPPORTED_TOOLS.inject({}) do |hash, tool|
    hash.merge!(tool => extension_inferrer(tool))
  end
end

#infer_extension(mime_type) ⇒ Object



27
28
29
30
31
32
33
# File 'lib/shrine/plugins/infer_extension.rb', line 27

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