Class: BestType::MimeTypeLookup
- Inherits:
-
Object
- Object
- BestType::MimeTypeLookup
- Defined in:
- lib/best_type/mime_type_lookup.rb
Constant Summary collapse
- FALLBACK_MIME_TYPE_VALUE =
'application/octet-stream'
Instance Attribute Summary collapse
-
#config ⇒ Object
readonly
Returns the value of attribute config.
Instance Method Summary collapse
- #for_file_name(file_name_or_path) ⇒ Object
-
#initialize(config) ⇒ MimeTypeLookup
constructor
A new instance of MimeTypeLookup.
Constructor Details
#initialize(config) ⇒ MimeTypeLookup
Returns a new instance of MimeTypeLookup.
11 12 13 |
# File 'lib/best_type/mime_type_lookup.rb', line 11 def initialize(config) @config = config end |
Instance Attribute Details
#config ⇒ Object (readonly)
Returns the value of attribute config.
7 8 9 |
# File 'lib/best_type/mime_type_lookup.rb', line 7 def config @config end |
Instance Method Details
#for_file_name(file_name_or_path) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/best_type/mime_type_lookup.rb', line 15 def for_file_name(file_name_or_path) # Normalize format of file_name_or_path file_name_or_path = file_name_or_path.downcase extension = File.extname(file_name_or_path) extension = extension[1..] unless extension.empty? # Check config overrides first unless extension.empty? mime_type = @config.extension_to_mime_type_overrides.fetch(extension, nil) return mime_type unless mime_type.nil? end # Fall back to regular lookup detected_mime_types = MIME::Types.of(file_name_or_path) detected_mime_types.empty? ? FALLBACK_MIME_TYPE_VALUE : detected_mime_types.first.content_type end |