Module: RailsBeforeRender
- Defined in:
- lib/rails_before_render.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.included(base) ⇒ Object
6 7 8 9 10 11 12 13 14 |
# File 'lib/rails_before_render.rb', line 6 def self.included base def base.before_render_filter &block klass = self.to_s key = Digest::MD5.hexdigest(caller[0]) @@_before_render[klass] ||= {} @@_before_render[klass][key] = block end end |
Instance Method Details
#render(*args) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/rails_before_render.rb', line 18 def render *args if @_was_in_render return performed? ? nil : super(*args) else @_was_in_render = true end self.class.ancestors.each do |klass| filters = @@_before_render[klass.to_s] || next filters.values.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 |