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