diff options
author | John Hawthorn <john@hawthorn.email> | 2019-02-25 19:33:50 -0800 |
---|---|---|
committer | John Hawthorn <john@hawthorn.email> | 2019-02-26 16:59:04 -0800 |
commit | c2145462178d2b28135fac38ebbceeaadfa151df (patch) | |
tree | ebad7770e18f73949b1a75e32fdbaa5892d9f908 | |
parent | ff4b2cf2410286e75b2ad41c9733ef41f65fba15 (diff) | |
download | rails-c2145462178d2b28135fac38ebbceeaadfa151df.tar.gz rails-c2145462178d2b28135fac38ebbceeaadfa151df.tar.bz2 rails-c2145462178d2b28135fac38ebbceeaadfa151df.zip |
Create templates with format=nil
-rw-r--r-- | actionmailer/lib/action_mailer/base.rb | 5 | ||||
-rw-r--r-- | actionview/lib/action_view/rendering.rb | 3 | ||||
-rw-r--r-- | actionview/lib/action_view/template/resolver.rb | 4 | ||||
-rw-r--r-- | actionview/test/template/lookup_context_test.rb | 4 | ||||
-rw-r--r-- | actionview/test/template/resolver_patterns_test.rb | 2 | ||||
-rw-r--r-- | actionview/test/template/testing/fixture_resolver_test.rb | 2 |
6 files changed, 11 insertions, 9 deletions
diff --git a/actionmailer/lib/action_mailer/base.rb b/actionmailer/lib/action_mailer/base.rb index 52360d40fe..8595b1e063 100644 --- a/actionmailer/lib/action_mailer/base.rb +++ b/actionmailer/lib/action_mailer/base.rb @@ -973,10 +973,11 @@ module ActionMailer templates_name = headers[:template_name] || action_name each_template(Array(templates_path), templates_name).map do |template| - self.formats = [template.format] + format = template.format || self.formats.first + self.formats = [format] { body: render(template: template), - content_type: template.type.to_s + content_type: Mime[format].to_s } end end diff --git a/actionview/lib/action_view/rendering.rb b/actionview/lib/action_view/rendering.rb index e5e2771323..ac861c44d4 100644 --- a/actionview/lib/action_view/rendering.rb +++ b/actionview/lib/action_view/rendering.rb @@ -118,7 +118,8 @@ module ActionView renderer.render_to_object(context, options) end - @rendered_format = Template::Types[rendered_template.format] + rendered_format = rendered_template.format || lookup_context.formats.first + @rendered_format = Template::Types[rendered_format] rendered_template.body end diff --git a/actionview/lib/action_view/template/resolver.rb b/actionview/lib/action_view/template/resolver.rb index 1c463efbb2..f2b8b1166d 100644 --- a/actionview/lib/action_view/template/resolver.rb +++ b/actionview/lib/action_view/template/resolver.rb @@ -294,12 +294,12 @@ module ActionView if handler.respond_to?(:default_format) # default_format can return nil handler.default_format else - query_format + nil end end # Template::Types[format] and handler.default_format can return nil - [handler, format || query_format, variant] + [handler, format, variant] end end diff --git a/actionview/test/template/lookup_context_test.rb b/actionview/test/template/lookup_context_test.rb index a763e24226..62935620e9 100644 --- a/actionview/test/template/lookup_context_test.rb +++ b/actionview/test/template/lookup_context_test.rb @@ -121,11 +121,11 @@ class LookupContextTest < ActiveSupport::TestCase assert_equal "Hello texty phone!", template.source end - test "found templates respects given formats if one cannot be found from template or handler" do + test "found templates have nil format if one cannot be found from template or handler" do assert_called(ActionView::Template::Handlers::Builder, :default_format, returns: nil) do @lookup_context.formats = [:text] template = @lookup_context.find("hello", %w(test)) - assert_equal :text, template.format + assert_nil template.format end end diff --git a/actionview/test/template/resolver_patterns_test.rb b/actionview/test/template/resolver_patterns_test.rb index 38357aa10b..8122de779f 100644 --- a/actionview/test/template/resolver_patterns_test.rb +++ b/actionview/test/template/resolver_patterns_test.rb @@ -19,7 +19,7 @@ class ResolverPatternsTest < ActiveSupport::TestCase assert_equal 1, templates.size, "expected one template" assert_equal "Hello custom patterns!", templates.first.source assert_equal "custom_pattern/path", templates.first.virtual_path - assert_equal :html, templates.first.format + assert_nil templates.first.format end def test_should_return_all_templates_when_ambiguous_pattern diff --git a/actionview/test/template/testing/fixture_resolver_test.rb b/actionview/test/template/testing/fixture_resolver_test.rb index 4361824a71..afb6686dac 100644 --- a/actionview/test/template/testing/fixture_resolver_test.rb +++ b/actionview/test/template/testing/fixture_resolver_test.rb @@ -15,6 +15,6 @@ class FixtureResolverTest < ActiveSupport::TestCase assert_equal 1, templates.size, "expected one template" assert_equal "this text", templates.first.source assert_equal "arbitrary/path", templates.first.virtual_path - assert_equal :html, templates.first.format + assert_nil templates.first.format end end |