Advertisement
Guest User

Untitled

a guest
Aug 2nd, 2015
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. module BeforeRender
  2. extend ActiveSupport::Concern
  3.  
  4. included do
  5. alias_method_chain :render, :before_render_action
  6. define_callbacks :render
  7. end
  8.  
  9. def render_with_before_render_action(*options, &block)
  10. run_callbacks :render do
  11. render_without_before_render_action *options, &block
  12. end
  13. end
  14.  
  15. module ClassMethods
  16. def append_before_render_action(*names, &block)
  17. _insert_callbacks(names, block) do |name, options|
  18. set_callback :render, :before, name, options
  19. end
  20. end
  21.  
  22. def prepend_before_render_action(*names, &block)
  23. _insert_callbacks(names, block) do |name, options|
  24. set_callback :render, :before, name, options.merge(:prepend => true)
  25. end
  26. end
  27.  
  28. def skip_before_render_action(*names, &block)
  29. _insert_callbacks(names, block) do |name, options|
  30. skip_callback :render, :before, name, options
  31. end
  32. end
  33.  
  34. alias_method :before_render, :append_before_render_action
  35. alias_method :prepend_before_render, :prepend_before_render_action
  36. alias_method :skip_before_render, :skip_before_render_action
  37. end
  38. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement