push_messages.rb 730 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. module PushMessages
  2. def self.enabled?
  3. return true if Thread.current[:push_messages].class == Array
  4. false
  5. end
  6. def self.init
  7. return true if enabled?
  8. Thread.current[:push_messages] = []
  9. end
  10. def self.send(data)
  11. if !PushMessages.enabled?
  12. Sessions.broadcast(
  13. data[:message],
  14. data[:type],
  15. data[:current_user_id],
  16. )
  17. return true
  18. end
  19. Thread.current[:push_messages].push data
  20. end
  21. def self.finish
  22. return false if !enabled?
  23. Thread.current[:push_messages].each { |data|
  24. Sessions.broadcast(
  25. data[:message],
  26. data[:type],
  27. data[:current_user_id],
  28. )
  29. }
  30. Thread.current[:push_messages] = nil
  31. true
  32. end
  33. end