Module: MultiMime
- Extended by:
- MultiMime
- Included in:
- MultiMime
- Defined in:
- lib/multi_mime.rb,
lib/multi_mime/adapter.rb,
lib/multi_mime/version.rb,
lib/multi_mime/null_type.rb,
lib/multi_mime/adapters/mime_type.rb,
lib/multi_mime/adapters/mimemagic.rb,
lib/multi_mime/adapters/rack_mime.rb,
lib/multi_mime/adapters/mime_types.rb
Defined Under Namespace
Modules: Adapters Classes: Adapter, NullType
Constant Summary collapse
- ADAPTERS =
i(mime_types rack_mime mimemagic mime_type)
- REQUIREMENT_MAP =
[ [:mime_types, 'mime/types', :MIME].freeze, [:mimemagic, 'mimemagic', :MimeMagic].freeze, [:mime_type, 'action_dispatch/http/mime_type', :Mime].freeze, [:rack_mime, 'rack/mime', :Rack].freeze ]
- VERSION =
'0.0.3'
Instance Method Summary collapse
-
#adapter ⇒ Object
Get the current adapter class.
-
#default_adapter ⇒ Object
The default adapter based on what you currently have loaded and installed.
-
#reset_adapter ⇒ Object
Remove the currently loaded adapter.
-
#type_for(mime_type, opts = {}) ⇒ String
(also: #by_type)
Get mime type by mime type.
-
#type_for_extension(extension, opts = {}) ⇒ String
(also: #by_extension)
Get mime type by extension.
-
#type_for_file(file, opts = {}) ⇒ String
(also: #by_file)
Get mime type by file.
-
#type_for_path(path, opts = {}) ⇒ String
(also: #by_path)
Get mime type by path.
-
#use(new_adapter) ⇒ Object
(also: #adapter=)
Set the Mime parser utilizing a symbol, string, or class.
Instance Method Details
#adapter ⇒ Object
Get the current adapter class.
38 39 40 41 42 |
# File 'lib/multi_mime.rb', line 38 def adapter return @adapter if defined?(@adapter) && @adapter use default_adapter # load default adapter @adapter end |
#default_adapter ⇒ Object
The default adapter based on what you currently have loaded and installed. First checks to see if any adapters are already loaded, then checks to see which are installed if none are loaded.
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/multi_mime.rb', line 17 def default_adapter return :mime_types if defined?(::MIME::Types) return :mimemagic if defined?(::MimeMagic) return :mime_type if defined?(::Mime::Type) return :rack_mime if defined?(::Rack::Mime) REQUIREMENT_MAP.each do |adapter, library, clazz| begin require library return adapter rescue ::LoadError next end end Kernel.warn '[WARNING] MultiMime hasn\'t been able to detect an adapter' nil end |
#reset_adapter ⇒ Object
Remove the currently loaded adapter
57 58 59 |
# File 'lib/multi_mime.rb', line 57 def reset_adapter remove_instance_variable :@adapter if defined?(@adapter) end |
#type_for(mime_type, opts = {}) ⇒ String Also known as: by_type
Get mime type by mime type
67 68 69 70 71 |
# File 'lib/multi_mime.rb', line 67 def type_for(mime_type, opts = {}) fail ArgumentError, "Mime Type must be a String. #{mime_type.inspect} given." unless mime_type.is_a? String adapter = current_adapter(opts) adapter.type_for(mime_type, opts) end |
#type_for_extension(extension, opts = {}) ⇒ String Also known as: by_extension
Get mime type by extension
80 81 82 83 84 |
# File 'lib/multi_mime.rb', line 80 def type_for_extension(extension, opts = {}) fail ArgumentError, "Extension must be a String. #{extension.inspect} given." unless extension.is_a? String adapter = current_adapter(opts) adapter.type_for_extension(extension, opts) end |
#type_for_file(file, opts = {}) ⇒ String Also known as: by_file
Get mime type by file
106 107 108 109 110 |
# File 'lib/multi_mime.rb', line 106 def type_for_file(file, opts = {}) fail ArgumentError, "File must be a File. #{file.inspect} given." unless file.is_a? File adapter = current_adapter(opts) adapter.type_for_file(file, opts) end |
#type_for_path(path, opts = {}) ⇒ String Also known as: by_path
Get mime type by path
93 94 95 96 97 |
# File 'lib/multi_mime.rb', line 93 def type_for_path(path, opts = {}) fail ArgumentError, "Path must be a String. #{path.inspect} given." unless path.is_a? String adapter = current_adapter(opts) adapter.type_for_path(path, opts) end |
#use(new_adapter) ⇒ Object Also known as: adapter=
Set the Mime parser utilizing a symbol, string, or class.
51 52 53 |
# File 'lib/multi_mime.rb', line 51 def use(new_adapter) @adapter = load_adapter(new_adapter) end |