Sha256: b7934c1a4be878ab185552c54b79a209d2db4c36b91af798228ae30c7ca71dcf

Contents?: true

Size: 639 Bytes

Versions: 3

Compression:

Stored size: 639 Bytes

Contents

# frozen_string_literal: true

module Gnip
  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
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
gnip-client-0.2.12 lib/gnip/gnip-stream/error_reconnect.rb
gnip-client-0.2.11 lib/gnip/gnip-stream/error_reconnect.rb
gnip-client-0.2.10 lib/gnip/gnip-stream/error_reconnect.rb