Module: RailsBeforeRender
- Defined in:
- lib/rails_before_render.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.included(base) ⇒ Object
4 5 6 7 8 9 10 |
# File 'lib/rails_before_render.rb', line 4 def self.included base def base.before_render &block klass = self.to_s @@before_render[klass] ||= [] @@before_render[klass].push block end end |
Instance Method Details
#render(*args) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/rails_before_render.rb', line 14 def render *args return performed? ? nil : super(*args) if @_was_in_render @_was_in_render = true self.class.ancestors.each do |klass| filters = @@before_render[klass.to_s] || next filters.each do |filter| # do not run if render or redirect is called instance_exec &filter unless performed? end end # call native render unless redirect or render or redirect happend super unless performed? end |