Advertisement
Guest User

Untitled

a guest
May 25th, 2015
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.82 KB | None | 0 0
  1. module Wisper::EnlightenedPublisher
  2. extend ActiveSupport::Concern
  3.  
  4. included do
  5. include Wisper::Publisher
  6. prepend PrependedMethods
  7. end
  8.  
  9. def subscribe_to_listeners
  10. self.class.wisper_listeners.each do |listener|
  11. subscribe(listener.constantize.new)
  12. end
  13. end
  14.  
  15. module PrependedMethods
  16. def initialize(*args, &block) # ack what is the right signature here, I don't even know.
  17. super
  18. subscribe_to_listeners
  19. end
  20. end
  21.  
  22. module ClassMethods
  23. def subscriber(klass)
  24. wisper_subscriptions << klass
  25. end
  26.  
  27. def wisper_subscriptions
  28. @wisper_subscriptions ||= []
  29. end
  30. end
  31. end
  32.  
  33. class MyInteraction
  34. include Wisper::EnlightenedPublisher
  35. subscriber "AnalyticsListener"
  36.  
  37. def initialize(user)
  38. @user = user
  39. end
  40.  
  41. def run
  42. broadcast :something
  43. end
  44. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement