nonnative 1.1.0 → 1.1.1

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: eca9151fff87535cc94a77e24cf243a3d0ed4203dc19c1d8bd5a6e31e604521e
4
- data.tar.gz: 4cf14cbb4df0dca0740406c1667742b171238ace67463f51387464cd5f2cf9cd
3
+ metadata.gz: 94fcc3a2a4b8de1151b3ddf4167a17f61cc37c76c5e13aa8f149d6bcf3936202
4
+ data.tar.gz: 11830a63386ff946a95dc43147002aa0ffd40a7905d67077f065d61d1b9bef1b
5
5
  SHA512:
6
- metadata.gz: 5b90f1d35bfbd4edb311a308d39d20711b3cf53b03101a554a088cac1719f6b53cc57f629f862dae4bd7063e8be5413b948edb5c952ee929ef971cdfce804d4b
7
- data.tar.gz: 2df440113fda404d2a140909b8d2b3ae5a37e6c50619f9a6a29e26d5f7cff4abaf84fe7f1e879d5f592d5a353a9281e2612a33c3c28a0227f7658f0153a0d5c6
6
+ metadata.gz: 390aca473034cbe91730e94a68e4ee20c7e1ace387fd4023f4cca947f7e1c1a4c00e9569fc3409b752d3ee6b2e5e44c058fd88cb4c20a29d9996daea01881bfa
7
+ data.tar.gz: b038c7d147f724fb8cf220e70eb1c08470d1c61980e304ea3283ac2eedbda628ae1a001bbb1427113b73c71c932b334b64bf38c3f5d27f876ae95e900d97c901
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nonnative (1.1.0)
4
+ nonnative (1.1.1)
5
5
  cucumber
6
6
  rspec-expectations
7
7
  semantic_logger
@@ -8,17 +8,11 @@ module Nonnative
8
8
  end
9
9
 
10
10
  def start(&block)
11
- prs = processes.map { |p, _| p.start }
12
- pos = processes.map { |_, p| Thread.new { p.open? } }.map(&:value)
13
-
14
- yield_results(prs, pos, &block)
11
+ process_all(:start, :open?, &block)
15
12
  end
16
13
 
17
14
  def stop(&block)
18
- prs = processes.map { |p, _| p.stop }
19
- pos = processes.map { |_, p| Thread.new { p.closed? } }.map(&:value)
20
-
21
- yield_results(prs, pos, &block)
15
+ process_all(:stop, :closed?, &block)
22
16
  end
23
17
 
24
18
  private
@@ -31,6 +25,22 @@ module Nonnative
31
25
  end
32
26
  end
33
27
 
28
+ def process_all(pr_method, po_method, &block)
29
+ prs = []
30
+ ths = []
31
+
32
+ processes.each do |pr, po|
33
+ prs << pr.send(pr_method)
34
+ ths << Thread.new { po.send(po_method) }
35
+ end
36
+
37
+ ThreadsWait.all_waits(*ths)
38
+
39
+ pos = ths.map(&:value)
40
+
41
+ yield_results(prs, pos, &block)
42
+ end
43
+
34
44
  def yield_results(prs, pos)
35
45
  prs.zip(pos).each do |pid, result|
36
46
  yield pid, result
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Nonnative
4
- VERSION = '1.1.0'
4
+ VERSION = '1.1.1'
5
5
  end
data/lib/nonnative.rb CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'socket'
4
4
  require 'timeout'
5
+ require 'thwait'
5
6
  require 'yaml'
6
7
 
7
8
  require 'nonnative/version'
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: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Falkowski