From bc74959aad2073b294f537b0e928e0bbc23abfea Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Mon, 25 Feb 2019 11:58:19 -0800 Subject: [PATCH] Dereference the format type before template construction The format should always be exactly one symbol. Now we don't need to check whether or not the format is a `Type` in the constructor. --- actionview/lib/action_view/template.rb | 2 +- actionview/lib/action_view/template/resolver.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/actionview/lib/action_view/template.rb b/actionview/lib/action_view/template.rb index 9e8f17d746..ffc3a7362e 100644 --- a/actionview/lib/action_view/template.rb +++ b/actionview/lib/action_view/template.rb @@ -149,7 +149,7 @@ module ActionView end @updated_at = details[:updated_at] || Time.now - @formats = Array(format).map { |f| f.respond_to?(:ref) ? f.ref : f } + @formats = Array(format) @variants = [details[:variant]] @compile_mutex = Mutex.new end diff --git a/actionview/lib/action_view/template/resolver.rb b/actionview/lib/action_view/template/resolver.rb index 8232494746..220794e443 100644 --- a/actionview/lib/action_view/template/resolver.rb +++ b/actionview/lib/action_view/template/resolver.rb @@ -300,7 +300,7 @@ module ActionView handler = Template.handler_for_extension(extension) format, variant = pieces.last.split(EXTENSIONS[:variants], 2) if pieces.last format = if format - Template::Types[format] + Template::Types[format]&.ref else if handler.respond_to?(:default_format) # default_format can return nil handler.default_format