class Smith::Messaging::Timeout
Public Class Methods
new(timeout, opts={}, &blk)
click to toggle source
# File lib/smith/messaging/sender.rb, line 216 def initialize(timeout, opts={}, &blk) @timeout_proc = blk || proc { |message_id| raise MessageTimeoutError, "Message not received within the timeout period#{(message_id) ? ": #{message_id}" : ""}" } @timeout_duration = timeout end
Public Instance Methods
cancel_timeout()
click to toggle source
# File lib/smith/messaging/sender.rb, line 237 def cancel_timeout @timeout.cancel if @timeout end
set_timeout(message_id)
click to toggle source
# File lib/smith/messaging/sender.rb, line 221 def set_timeout(message_id) @message_id = message_id cancel_timeout if @timeout_duration @timeout = EventMachine::Timer.new(@timeout_duration) do @timeout_proc.call(message_id, @timeout_duration) end else raise ArgumentError, "on_timeout not set." end end
timeout?()
click to toggle source
# File lib/smith/messaging/sender.rb, line 233 def timeout? !@timeout_duration.nil? end
to_s()
click to toggle source
# File lib/smith/messaging/sender.rb, line 241 def to_s "<Smith::Timeout: #{@timeout_duration}>" end