eriwen/gnip-stream

View on GitHub
lib/gnip-stream/error_reconnect.rb

Summary

Maintainability
A
0 mins
Test Coverage
module GnipStream
  class ErrorReconnect
    def initialize(source_class, method_name)
      @source_class = source_class
      @method_name = method_name
      @reconnect_attempts = 0
    end

    def attempt_to_reconnect(error_message)
      @error_message = error_message
      if @reconnect_attempts < 5
        @reconnect_attempts +=1
        sleep(2)
        @source_class.send(@method_name)
      else
        reconnect_failed_raise_error
      end
    end

    def reconnect_failed_raise_error
      raise @error_message
    end

  end
end