class Shrine::Plugins::InferExtension::ExtensionInferrer
Constants
- SUPPORTED_TOOLS
Public Class Methods
new(tool)
click to toggle source
# File lib/shrine/plugins/infer_extension.rb, line 75 def initialize(tool) raise Error, "unknown extension inferrer #{tool.inspect}, supported inferrers are: #{SUPPORTED_TOOLS.join(",")}" unless SUPPORTED_TOOLS.include?(tool) @tool = tool end
Public Instance Methods
call(mime_type)
click to toggle source
# File lib/shrine/plugins/infer_extension.rb, line 81 def call(mime_type) return nil if mime_type.nil? extension = send(:"infer_with_#{@tool}", mime_type) extension = ".#{extension}" unless extension.nil? || extension.start_with?(".") extension end
Private Instance Methods
infer_with_mime_types(mime_type)
click to toggle source
# File lib/shrine/plugins/infer_extension.rb, line 91 def infer_with_mime_types(mime_type) require "mime/types" mime_type = MIME::Types[mime_type].first mime_type.preferred_extension if mime_type end
infer_with_mini_mime(mime_type)
click to toggle source
# File lib/shrine/plugins/infer_extension.rb, line 98 def infer_with_mini_mime(mime_type) require "mini_mime" info = MiniMime.lookup_by_content_type(mime_type) info.extension if info end