class Ably::Util::SafeDeferrable
SafeDeferrable
class provides a Deferrable that is safe to use for for public interfaces of this client library. Any exceptions raised in the success or failure callbacks are caught and logged to the provided logger.
An exception in a callback provided by a developer should not break this client library and stop further execution of code.
Attributes
logger[R]
Public Class Methods
new(logger)
click to toggle source
# File lib/submodules/ably-ruby/lib/ably/util/safe_deferrable.rb, line 14 def initialize(logger) @logger = logger end
new_and_fail_immediately(logger, error)
click to toggle source
Create a new {SafeDeferrable} and fail immediately with the provided error in the next eventloop cycle
@param error [Ably::Exceptions::BaseAblyException, Ably::Models::ErrorInfo
] The error used to fail the newly created {SafeDeferrable}
@return [SafeDeferrable]
# File lib/submodules/ably-ruby/lib/ably/util/safe_deferrable.rb, line 24 def self.new_and_fail_immediately(logger, error) new(logger).tap do |deferrable| EventMachine.next_tick do deferrable.fail error end end end
new_and_succeed_immediately(logger, *args)
click to toggle source
Create a new {SafeDeferrable} and succeed immediately with the provided arguments in the next eventloop cycle
@return [SafeDeferrable]
# File lib/submodules/ably-ruby/lib/ably/util/safe_deferrable.rb, line 36 def self.new_and_succeed_immediately(logger, *args) new(logger).tap do |deferrable| EventMachine.next_tick do deferrable.succeed *args end end end