nonnative 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dc55917fc160807c8f3c3044f387fa57e77e02f2c00a49c51c0b553486498937
4
- data.tar.gz: 164d765442febb35f9e3e8980c90e7124cc45defe163b46a73714a0cf65344a3
3
+ metadata.gz: '06810bfb7f808b9a8d29a48a83f3b6d65d62d7319708961176ac4d12ec8b7f1e'
4
+ data.tar.gz: 4822cdaa7d9fc73ed9bdd56721eed722d782dc0656dcdd83503b6bb9eb626d72
5
5
  SHA512:
6
- metadata.gz: b3c9eacd0190c8aec9bfbdfdf731fcc8bd231e452f1267b14433eb9a9a85e18733a23fd3c45f0f2192945f394d710254e7cd8d2fffb5d4285b2491fc3e3d6202
7
- data.tar.gz: f207d345eaf75c70cf6b8839f55f6d9038305b0a33367d401dcb113b89eba38f3423cf6eaed91fd56511a802c437b4db131a1748302d5d05ed712b83dcf16124
6
+ metadata.gz: 6f78bb13f595d29a1156635e56673e8cb37c2a6c32160d7ed92bc846d80203bd4249da3a37dfeebb0f5c3fbc60cbd4d87b952bc3c02df1f59dd3efa8351ec4a4
7
+ data.tar.gz: f3f42321dbc3b520ef40965a043fdb55c8a4cd7116eeeb7199319138efea9008481607c41c47809b785ed688d091a1b55277fd84bfec3876327c6d32fb4e2930
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nonnative (0.2.1)
4
+ nonnative (0.3.0)
5
5
  cucumber
6
6
  rspec-expectations
7
7
  semantic_logger
@@ -16,7 +16,7 @@ module Nonnative
16
16
 
17
17
  def stop
18
18
  ::Process.kill('SIGHUP', child_pid)
19
- return unless port_open?
19
+ return if port_closed?
20
20
 
21
21
  logger.error('Process has stopped though did respond in time', pid: child_pid)
22
22
  end
@@ -26,15 +26,41 @@ module Nonnative
26
26
  attr_reader :configuration, :logger, :child_pid
27
27
 
28
28
  def port_open?
29
- Timeout.timeout(configuration.timeout) do
30
- TCPSocket.new('127.0.0.1', configuration.port).close
29
+ timeout do
30
+ open_socket
31
31
  true
32
32
  rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH
33
- sleep 0.01
33
+ sleep_interval
34
+ retry
35
+ end
36
+ end
37
+
38
+ def port_closed?
39
+ timeout do
40
+ open_socket
41
+ raise Nonnative::Error
42
+ rescue Nonnative::Error
43
+ sleep_interval
34
44
  retry
45
+ rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH
46
+ true
47
+ end
48
+ end
49
+
50
+ def timeout
51
+ Timeout.timeout(configuration.timeout) do
52
+ yield
35
53
  end
36
54
  rescue Timeout::Error
37
55
  false
38
56
  end
57
+
58
+ def open_socket
59
+ TCPSocket.new('127.0.0.1', configuration.port).close
60
+ end
61
+
62
+ def sleep_interval
63
+ sleep 0.01
64
+ end
39
65
  end
40
66
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Nonnative
4
- VERSION = '0.2.1'
4
+ VERSION = '0.3.0'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nonnative
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Falkowski