summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBurke Libbey <burke@libbey.me>2017-04-11 14:19:30 -0400
committerAustin Ziegler <austin@zieglers.ca>2017-04-11 14:19:30 -0400
commit372059bf2168ee922284896cf872c2aad0da8ee4 (patch)
tree36ce16c40bbcb075ac92e622a787e683e79e7bc5
parentaa499d1ea849584c7e2e63518f10289e76c00ec6 (diff)
downloadmime-types-372059bf2168ee922284896cf872c2aad0da8ee4.tar.gz
Add __instances__ entry when loading from cache (#126)
-rw-r--r--lib/mime/types/registry.rb5
-rw-r--r--test/test_mime_types_cache.rb9
2 files changed, 12 insertions, 2 deletions
diff --git a/lib/mime/types/registry.rb b/lib/mime/types/registry.rb
index 23e2649..3aa0362 100644
--- a/lib/mime/types/registry.rb
+++ b/lib/mime/types/registry.rb
@@ -55,8 +55,9 @@ class << MIME::Types
end
def load_default_mime_types(mode = load_mode)
- @__types__ = MIME::Types::Cache.load
- unless @__types__
+ if @__types__ = MIME::Types::Cache.load
+ __instances__.add(@__types__)
+ else
@__types__ = MIME::Types::Loader.load(mode)
MIME::Types::Cache.save(@__types__)
end
diff --git a/test/test_mime_types_cache.rb b/test/test_mime_types_cache.rb
index 3b5859b..daa8214 100644
--- a/test/test_mime_types_cache.rb
+++ b/test/test_mime_types_cache.rb
@@ -42,6 +42,15 @@ describe MIME::Types::Cache do
assert_equal(nil, MIME::Types::Cache.load)
end
+ it 'registers the data to be updated by #add_extensions' do
+ MIME::Types::Cache.save
+ reset_mime_types
+ assert_equal([], MIME::Types.type_for('foo.additional'))
+ html = MIME::Types['text/html'][0]
+ html.add_extensions('additional')
+ assert_equal([html], MIME::Types.type_for('foo.additional'))
+ end
+
it 'outputs an error when there is an invalid version' do
v = MIME::Types::Data::VERSION
MIME::Types::Data.send(:remove_const, :VERSION)