diff options
author | Aaron Patterson <tenderlove@github.com> | 2019-02-15 22:33:30 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-15 22:33:30 -0800 |
commit | fdc05952bd667e37dc0c1326c645a3dd65d450db (patch) | |
tree | f212c25a6b780e613e17d426dcd3745ec2f99260 | |
parent | 5cdcf7a2e066293b7605ae7fca87a72c8208f45f (diff) | |
parent | 7878027ca7de3dc13716f5efb088553fdd04d220 (diff) | |
download | rails-fdc05952bd667e37dc0c1326c645a3dd65d450db.tar.gz rails-fdc05952bd667e37dc0c1326c645a3dd65d450db.tar.bz2 rails-fdc05952bd667e37dc0c1326c645a3dd65d450db.zip |
Merge pull request #35281 from y-yagi/show_deprecated_message_instead_of_raise_exception
Show deprecated message instead of raise exception in `compiled_method_container` method
-rw-r--r-- | actionview/lib/action_view/base.rb | 14 | ||||
-rw-r--r-- | actionview/test/template/render_test.rb | 7 |
2 files changed, 16 insertions, 5 deletions
diff --git a/actionview/lib/action_view/base.rb b/actionview/lib/action_view/base.rb index 712e5d251e..c0d2d258c5 100644 --- a/actionview/lib/action_view/base.rb +++ b/actionview/lib/action_view/base.rb @@ -273,11 +273,15 @@ module ActionView #:nodoc: end def compiled_method_container - raise NotImplementedError, <<~msg - Subclasses of ActionView::Base must implement `compiled_method_container` - or use the class method `with_empty_template_cache` for constructing - an ActionView::Base subclass that has an empty cache. - msg + if self.class == ActionView::Base + ActiveSupport::Deprecation.warn <<~eowarn + ActionView::Base instances must implement `compiled_method_container` + or use the class method `with_empty_template_cache` for constructing + an ActionView::Base instances that has an empty cache. + eowarn + end + + self.class end def in_context(options, locals) diff --git a/actionview/test/template/render_test.rb b/actionview/test/template/render_test.rb index cda8c942d8..543df7a71a 100644 --- a/actionview/test/template/render_test.rb +++ b/actionview/test/template/render_test.rb @@ -367,6 +367,13 @@ module RenderTestCases end end + def test_without_compiled_method_container_is_deprecated + view = ActionView::Base.with_view_paths(ActionController::Base.view_paths) + assert_deprecated("ActionView::Base instances must implement `compiled_method_container`") do + assert_equal "Hello world!", view.render(file: "test/hello_world") + end + end + def test_render_partial_without_object_does_not_put_partial_name_to_local_assigns assert_equal "false", @view.render(partial: "test/partial_name_in_local_assigns") end |