Skip to content

Commit 805f211

Browse files
committed
Update mime types integration. Fixes #46.
1 parent 88247a5 commit 805f211

File tree

1 file changed

+14
-22
lines changed

1 file changed

+14
-22
lines changed

lib/utopia/static/mime_types.rb

Lines changed: 14 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ def self.extensions_for(types, library = MIME_TYPES)
6060
def extract_extensions(mime_types)
6161
mime_types.select{|mime_type| !mime_type.obsolete?}.each do |mime_type|
6262
mime_type.extensions.each do |ext|
63-
@extensions["." + ext] = mime_type.content_type
63+
@extensions["." + ext] ||= mime_type.content_type
6464
end
6565
end
6666
end
@@ -70,28 +70,20 @@ class ExpansionError < ArgumentError
7070

7171
def expand(types)
7272
types.each do |type|
73-
current_count = @extensions.size
74-
75-
begin
76-
case type
77-
when Symbol
78-
self.expand(MIME_TYPES[type])
79-
when Array
80-
@extensions["." + type[0]] = type[1]
81-
when String
82-
self.extract_extensions MIME::Types.of(type)
83-
when Regexp
84-
self.extract_extensions MIME::Types[type]
85-
when MIME::Type
86-
self.extract_extensions.call([type])
87-
end
88-
rescue
89-
raise ExpansionError.new("#{self.class.name}: Error while processing #{type.inspect}!")
90-
end
91-
92-
if @extensions.size == current_count
93-
raise ExpansionError.new("#{self.class.name}: Could not find any mime type for #{type.inspect}")
73+
case type
74+
when Symbol
75+
self.expand(MIME_TYPES[type])
76+
when Array
77+
@extensions["." + type[0]] = type[1]
78+
when String
79+
self.extract_extensions MIME::Types.of(type)
80+
when Regexp
81+
self.extract_extensions MIME::Types[type]
82+
when MIME::Type
83+
self.extract_extensions.call([type])
9484
end
85+
rescue
86+
raise ExpansionError.new("#{self.class.name}: Error while processing #{type.inspect}!")
9587
end
9688
end
9789
end

0 commit comments

Comments
 (0)