Sha256: 56e72f3821ed1894241eb9bbd7461ef90d8f02679c2e83aa9e47f2067bfcf0e4
Contents?: true
Size: 815 Bytes
Versions: 2
Compression:
Stored size: 815 Bytes
Contents
# frozen_string_literal: true module Nonnative class Port def initialize(process) @process = process @timeout = Nonnative::Timeout.new(process.timeout) end def open? timeout.perform do open_socket true rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH sleep_interval retry end end def closed? timeout.perform do open_socket raise Nonnative::Error rescue Nonnative::Error sleep_interval retry rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH, Errno::ECONNRESET true end end private attr_reader :process, :timeout def open_socket TCPSocket.new('127.0.0.1', process.port).close end def sleep_interval sleep 0.01 end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
nonnative-1.4.0 | lib/nonnative/port.rb |
nonnative-1.3.0 | lib/nonnative/port.rb |