Class: Eventish::Adapters::Wisper
- Inherits:
-
Object
- Object
- Eventish::Adapters::Wisper
- Extended by:
- Wisper::Publisher
- Defined in:
- lib/eventish/adapters/wisper.rb
Class Method Summary collapse
- .publish(event, target = nil, block: nil) ⇒ Object
- .subscribe(event, handler) ⇒ Object
- .unsubscribe(event) ⇒ Object
Class Method Details
.publish(event, target = nil, block: nil) ⇒ Object
9 10 11 12 13 14 |
# File 'lib/eventish/adapters/wisper.rb', line 9 def publish(event, target = nil, block: nil) raise ArgumentError, 'Missing event to publish' if event.nil? = block ? { block: block } : {} # TODO: verify block feature broadcast(event.to_s, target, ) end |
.subscribe(event, handler) ⇒ Object
16 17 18 19 20 21 22 23 |
# File 'lib/eventish/adapters/wisper.rb', line 16 def subscribe(event, handler) raise ArgumentError, 'Missing event to subscribe' if event.nil? raise ArgumentError, 'Missing handler for subscription' if handler.nil? ::Wisper.subscribe(handler.new, on: event.to_s, with: :call).tap do |subscriber| Eventish.subscribers[event.to_s] = subscriber end end |
.unsubscribe(event) ⇒ Object
25 26 27 28 29 30 31 |
# File 'lib/eventish/adapters/wisper.rb', line 25 def unsubscribe(event) raise ArgumentError, 'Missing event to unsubscribe' if event.nil? subscriber = Eventish.subscribers[event.to_s] ::Wisper.unsubscribe(subscriber) Eventish.subscribers.delete(event.to_s) end |