class Lowdown::Client::RequestGroup::Callbacks
Public Class Methods
new(condition)
click to toggle source
# File lib/lowdown/client/request_group.rb, line 42 def initialize(condition) @callbacks = {} @condition = condition end
Public Instance Methods
add(notification_id, callback)
click to toggle source
# File lib/lowdown/client/request_group.rb, line 51 def add(notification_id, callback) raise ArgumentError, "A notification ID is required." unless notification_id @callbacks[notification_id] = callback end
empty?()
click to toggle source
# File lib/lowdown/client/request_group.rb, line 47 def empty? @callbacks.empty? end
handle_apns_response(response, context:)
click to toggle source
# File lib/lowdown/client/request_group.rb, line 56 def handle_apns_response(response, context:) callback = @callbacks.delete(response.id) if callback.is_a?(Proc) callback.call(response, context) else callback.send(:handle_apns_response, response, context: context) end ensure @condition.signal if @callbacks.empty? end