Class: Utopia::Static::MimeTypeLoader
- Inherits:
-
Object
- Object
- Utopia::Static::MimeTypeLoader
- Defined in:
- lib/utopia/static/mime_types.rb
Overview
A class to assist with loading mime-type metadata.
Defined Under Namespace
Classes: ExpansionError
Instance Attribute Summary collapse
-
#extensions ⇒ Object
readonly
Returns the value of attribute extensions.
Class Method Summary collapse
Instance Method Summary collapse
- #expand(types) ⇒ Object
- #extract_extensions(mime_types) ⇒ Object
-
#initialize(library) ⇒ MimeTypeLoader
constructor
A new instance of MimeTypeLoader.
Constructor Details
#initialize(library) ⇒ MimeTypeLoader
Returns a new instance of MimeTypeLoader.
47 48 49 50 |
# File 'lib/utopia/static/mime_types.rb', line 47 def initialize(library) @extensions = {} @library = library end |
Instance Attribute Details
#extensions ⇒ Object (readonly)
Returns the value of attribute extensions.
52 53 54 |
# File 'lib/utopia/static/mime_types.rb', line 52 def extensions @extensions end |
Class Method Details
.extensions_for(types, library = MIME_TYPES) ⇒ Object
54 55 56 57 58 |
# File 'lib/utopia/static/mime_types.rb', line 54 def self.extensions_for(types, library = MIME_TYPES) loader = self.new(library) loader.(types) return loader.extensions end |
Instance Method Details
#expand(types) ⇒ Object
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/utopia/static/mime_types.rb', line 71 def (types) types.each do |type| current_count = @extensions.size begin case type when Symbol self.(MIME_TYPES[type]) when Array @extensions["." + type[0]] = type[1] when String self.extract_extensions MIME::Types.of(type) when Regexp self.extract_extensions MIME::Types[type] when MIME::Type self.extract_extensions.call([type]) end rescue raise ExpansionError.new("#{self.class.name}: Error while processing #{type.inspect}!") end if @extensions.size == current_count raise ExpansionError.new("#{self.class.name}: Could not find any mime type for #{type.inspect}") end end end |
#extract_extensions(mime_types) ⇒ Object
60 61 62 63 64 65 66 |
# File 'lib/utopia/static/mime_types.rb', line 60 def extract_extensions(mime_types) mime_types.select{|mime_type| !mime_type.obsolete?}.each do |mime_type| mime_type.extensions.each do |ext| @extensions["." + ext] = mime_type.content_type end end end |