diff --git a/lib/mini_mime.rb b/lib/mini_mime.rb index eadde55..874a7d5 100644 --- a/lib/mini_mime.rb +++ b/lib/mini_mime.rb @@ -50,6 +50,13 @@ def binary? end class Db + LOCK = Mutex.new + @db = nil + + def self.db + @db || LOCK.synchronize { @db ||= new } + end + def self.lookup_by_filename(filename) extension = File.extname(filename) return if extension.empty? @@ -58,14 +65,11 @@ def self.lookup_by_filename(filename) end def self.lookup_by_extension(extension) - @db ||= new - @db.lookup_by_extension(extension) || - @db.lookup_by_extension(extension.downcase) + db.lookup_by_extension(extension) || db.lookup_by_extension(extension.downcase) end def self.lookup_by_content_type(content_type) - @db ||= new - @db.lookup_by_content_type(content_type) + db.lookup_by_content_type(content_type) end class Cache