Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module Publisher
- extend self
- def broadcast_event(event_name, payload={})
- if block_given?
- ActiveSupport::Notifications.instrument(event_name, payload) do
- yield
- end
- else
- ActiveSupport::Notifications.instrument(event_name, payload)
- end
- end
- end
- # Usage
- if user.save
- Publisher.broadcast_event('user.created', user: user)
- end
- # Usage with block
- def create_user(params)
- user = User.new(params)
- Publisher.broadcast_event('user.created', user: user) do
- User.save!
- # do some more important stuff here
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement