nonnative 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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