module Leeroy::Helpers::Polling
Constants
- POLL_CALLBACK
- POLL_INTERVAL
- POLL_TIMEOUT
Attributes
poll_callback[RW]
poll_interval[RW]
poll_response[RW]
poll_timeout[RW]
Public Class Methods
new(*args, &block)
click to toggle source
Calls superclass method
# File lib/leeroy/helpers/polling.rb, line 52 def initialize(*args, &block) begin super @poll_callback = POLL_CALLBACK @poll_timeout = POLL_TIMEOUT @poll_interval = POLL_INTERVAL rescue StandardError => e raise e end end
Public Instance Methods
poll(*args)
click to toggle source
# File lib/leeroy/helpers/polling.rb, line 19 def poll(*args) begin logger.debug "beginning to poll" callback = self.poll_callback raise "callback must be a Proc" unless callback.kind_of?(Proc) timeout = self.poll_timeout interval = self.poll_interval logger.debug "callback: #{callback.inspect}" logger.debug "polling every #{interval} seconds for #{timeout} seconds" SmartPolling.poll(timeout: timeout, interval: interval) do poll_arg = args[0] logger.debug "poll_arg: #{poll_arg.inspect}" self.poll_response = callback.call(poll_arg) end response = self.poll_response logger.debug "response: #{response.inspect}" response rescue Interrupt => e logger.fatal "Keyboard interrupt" raise e rescue StandardError => e raise e end end