aboutsummaryrefslogtreecommitdiffstats
path: root/actionview/lib/action_view/base.rb
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2019-01-16 17:28:03 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2019-01-16 17:32:12 -0800
commitc740ebdaf580c8c9772a9099c7a9c11ef3105f3a (patch)
tree9ccd5ae75d37678312c8ae3af8b05d25e545de38 /actionview/lib/action_view/base.rb
parentccfa01c36e79013881ffdb7ebe397cec733d15b2 (diff)
downloadrails-c740ebdaf580c8c9772a9099c7a9c11ef3105f3a.tar.gz
rails-c740ebdaf580c8c9772a9099c7a9c11ef3105f3a.tar.bz2
rails-c740ebdaf580c8c9772a9099c7a9c11ef3105f3a.zip
Always evaluate views against an ActionView::Base
Methods created by views should always be evaluated against an AV::Base instance. This way we can extract and refactor things in to classes.
Diffstat (limited to 'actionview/lib/action_view/base.rb')
-rw-r--r--actionview/lib/action_view/base.rb7
1 files changed, 7 insertions, 0 deletions
diff --git a/actionview/lib/action_view/base.rb b/actionview/lib/action_view/base.rb
index d41fe2a608..4318791760 100644
--- a/actionview/lib/action_view/base.rb
+++ b/actionview/lib/action_view/base.rb
@@ -210,6 +210,13 @@ module ActionView #:nodoc:
_prepare_context
end
+ def run(method, locals, buffer, &block)
+ _old_output_buffer = @output_buffer
+ send(method, locals, buffer, &block)
+ ensure
+ @output_buffer = _old_output_buffer
+ end
+
ActiveSupport.run_load_hooks(:action_view, self)
end
end