Advertisement
Guest User

Untitled

a guest
Oct 19th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.55 KB | None | 0 0
  1. module Publisher
  2. extend self
  3.  
  4. def broadcast_event(event_name, payload={})
  5. if block_given?
  6. ActiveSupport::Notifications.instrument(event_name, payload) do
  7. yield
  8. end
  9. else
  10. ActiveSupport::Notifications.instrument(event_name, payload)
  11. end
  12. end
  13.  
  14. end
  15.  
  16. # Usage
  17. if user.save
  18. Publisher.broadcast_event('user.created', user: user)
  19. end
  20.  
  21. # Usage with block
  22. def create_user(params)
  23. user = User.new(params)
  24.  
  25. Publisher.broadcast_event('user.created', user: user) do
  26. User.save!
  27. # do some more important stuff here
  28. end
  29. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement