Module: Sinatra::API::Callbacks
- Included in:
- Sinatra::API
- Defined in:
- lib/sinatra/api/callbacks.rb
Overview
An event pub/sub interface.
Instance Attribute Summary collapse
-
#callbacks ⇒ Object
Returns the value of attribute callbacks.
Class Method Summary collapse
Instance Method Summary collapse
-
#on(event, &callback) ⇒ Object
Add a callback to a given event.
-
#trigger(event, *args) ⇒ Object
Broadcast an event to subscribed callbacks.
Instance Attribute Details
#callbacks ⇒ Object
Returns the value of attribute callbacks.
26 27 28 |
# File 'lib/sinatra/api/callbacks.rb', line 26 def callbacks @callbacks end |
Class Method Details
.extended(base) ⇒ Object
28 29 30 |
# File 'lib/sinatra/api/callbacks.rb', line 28 def self.extended(base) base.callbacks = {} end |
Instance Method Details
#on(event, &callback) ⇒ Object
Add a callback to a given event.
54 55 56 |
# File 'lib/sinatra/api/callbacks.rb', line 54 def on(event, &callback) (self.callbacks[event.to_sym] ||= []) << callback end |
#trigger(event, *args) ⇒ Object
Broadcast an event to subscribed callbacks.
64 65 66 67 68 69 |
# File 'lib/sinatra/api/callbacks.rb', line 64 def trigger(event, *args) callbacks = self.callbacks[event.to_sym] || [] callbacks.each do |callback| callback.call(*args) end end |