rb-process 0.2.0 → 0.2.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: ab790cec5e95ea3f1ea4d012052d7475f74664d4442e5d64488e0eaebdc39542
4
- data.tar.gz: 0cf40472af862fdde9b81b0e0541b69afb3a14dba3d05e826dc57a007a042ff1
3
+ metadata.gz: 2211c2daaf9da3b8df7dab3cd4f948262c38486ee0c1c043de67335a17312f58
4
+ data.tar.gz: 5a407a0d39c42a07e4d32b30e28b69f60efb74e3bde87adbd168f21a4068979e
5
5
  SHA512:
6
- metadata.gz: eb46766cb0400392384051ea2dfcc5b730a0e1147c576ae5cc3be5d0fe21bd5b593e5f968009091397da70b00675a6b06d9d6f260d8b7fc0c9a44f0047c38896
7
- data.tar.gz: ed178815ae250bbe906de430225eb54181e7caa51928a512951ffaa56d4328414f2f0897199a5737b6dd3cb9afe4b6201a9293689a010af22676c42ef90e4cf5
6
+ metadata.gz: c3131329e1dd309bde627e95c3311d8a93aac6c07d68a4a12fb3123f84b507caad3755804de0387a6b0103ce69cb4eedd7417ecfe7b507d7a35146b039699b95
7
+ data.tar.gz: 2210d3454044e6080bc23927952d50b39d411a197a9747b6b6ff558594fd4b21619aa943dae95e5f0066146d66853e985fbb371589b0162e7afac8b711988a6b
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Process
4
- VERSION = "0.2.0"
4
+ VERSION = "0.2.1"
5
5
  end
data/lib/rb/process.rb CHANGED
@@ -5,7 +5,19 @@ require "stringio"
5
5
  require_relative "process/version"
6
6
 
7
7
  module Process
8
- def self.run(*args, output: STDOUT, error: STDERR, **options)
8
+ class Pipe
9
+ attr_reader :input
10
+ attr_reader :output
11
+ attr_reader :error
12
+
13
+ def initialize(input, output, error)
14
+ @input = input
15
+ @output = output
16
+ @error = error
17
+ end
18
+ end
19
+
20
+ def self.run(*args, output: STDOUT, error: STDERR, **options, &block)
9
21
  output_strio = StringIO.new
10
22
  error_strio = StringIO.new
11
23
 
@@ -34,14 +46,23 @@ module Process
34
46
 
35
47
  if block_given?
36
48
  begin
37
- yield in_w, out_r, err_r
49
+ case block.arity
50
+ when 1
51
+ yield Pipe.new(in_w, out_r, err_r)
52
+ when 2
53
+ yield in_w, out_r
54
+ when 3
55
+ yield in_w, out_r, err_r
56
+ else
57
+ raise ArgumentError.new("block must take 1 to 3 arguments")
58
+ end
38
59
  rescue StandardError => e
39
60
  Process.detach(pid)
40
61
  raise e
41
62
  end
42
63
  end
43
64
 
44
- in_w.close
65
+ in_w.close unless in_w.closed?
45
66
  out_w.close
46
67
  err_w.close
47
68
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rb-process
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - initdc