From 372059bf2168ee922284896cf872c2aad0da8ee4 Mon Sep 17 00:00:00 2001 From: Burke Libbey Date: Tue, 11 Apr 2017 14:19:30 -0400 Subject: [PATCH] Add __instances__ entry when loading from cache (#126) --- lib/mime/types/registry.rb | 5 +++-- test/test_mime_types_cache.rb | 9 +++++++++ 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 @@ def load_mode 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 @@ def clear_cache_file 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)