lino 3.2.0.pre.7 → 3.2.0.pre.8

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: 316b2b5ecae6178261c4b76fedfe0c5797ae50355a94a939f02c115507ba2a37
4
- data.tar.gz: 7ee4b662f7c3b1b5fa7ca3b6aca9d1e2597c5804d12732822bf766cfad2d228f
3
+ metadata.gz: da0833b0822fedee12bfa81350d5e87a69ef51bb9b4abc7f9f4537d5b851d3fe
4
+ data.tar.gz: f3bc82e3a0f6af9b1ae512a8db77b01626b39b089616371a35bb523a625a3551
5
5
  SHA512:
6
- metadata.gz: 152d8164ab1b7b00deaae2538d18559d872a5fb8800231728d238a34fa0393658134fc41244134288e7b2a6cff8b8962bb48bb5c151104a24aadb798da9149cd
7
- data.tar.gz: b2549104ac5496bb688b3cb61c8b4229bc99af00be5071871dbabd018007603734940f610658f20a8c62a9bd0638d1923e0f3b8631dc873819c812de54084deb
6
+ metadata.gz: e901b165f5fa1da7678057e04217b90558f7ef19f788b575e1dd3e1a5af825615e46040c33c24135899af5fa1ca1d8b150b83f225aeff568facc3498a2092f95
7
+ data.tar.gz: 9bd2103be29ad1026863b39df46a33d2a9618343d06ce517a01558087d6f18a85501c9a3a12fb04ab526ac6a22b56a9d8f29f0ee4269cf5b4ba013da3c5a1b58
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lino (3.2.0.pre.7)
4
+ lino (3.2.0.pre.8)
5
5
  childprocess (~> 5.0.0)
6
6
  hamster (~> 3.0)
7
7
  open4 (~> 1.3)
@@ -39,7 +39,8 @@ module Lino
39
39
  def start_process(process, opts)
40
40
  process.duplex = true if opts[:stdin]
41
41
  process.start
42
- process.io.stdin.write(opts[:stdin]) if opts[:stdin]
42
+ process.io.stdin.write(opts[:stdin].read) if opts[:stdin]
43
+ process.io.stdin.close if opts[:stdin]
43
44
  end
44
45
 
45
46
  def set_output_streams(process, opts)
@@ -3,7 +3,7 @@
3
3
  module Lino
4
4
  module Executors
5
5
  class Mock
6
- attr_reader :calls
6
+ attr_reader :executions, :stdout_contents, :stderr_contents
7
7
  attr_accessor :exit_code
8
8
 
9
9
  def initialize
@@ -11,7 +11,10 @@ module Lino
11
11
  end
12
12
 
13
13
  def execute(command_line, opts = {})
14
- @calls << { command_line:, opts:, exit_code: @exit_code }
14
+ execution = { command_line:, opts:, exit_code: @exit_code }
15
+ execution = process_streams(execution, opts)
16
+
17
+ @executions << execution
15
18
 
16
19
  return if @exit_code.zero?
17
20
 
@@ -20,9 +23,55 @@ module Lino
20
23
  )
21
24
  end
22
25
 
26
+ def fail_all_executions
27
+ self.exit_code = 1
28
+ end
29
+
30
+ def write_to_stdout(contents)
31
+ @stdout_contents = contents
32
+ end
33
+
34
+ def write_to_stderr(contents)
35
+ @stderr_contents = contents
36
+ end
37
+
23
38
  def reset
24
- @calls = []
39
+ @executions = []
25
40
  @exit_code = 0
41
+ @stdout_contents = nil
42
+ @stderr_contents = nil
43
+ end
44
+
45
+ private
46
+
47
+ def process_streams(execution, opts)
48
+ execution = process_stdout(execution, opts[:stdout])
49
+ execution = process_stderr(execution, opts[:stderr])
50
+ process_stdin(execution, opts[:stdin])
51
+ end
52
+
53
+ def process_stdout(execution, stdout)
54
+ if stdout && stdout_contents
55
+ stdout.write(stdout_contents)
56
+ return execution.merge(stdout_contents:)
57
+ end
58
+
59
+ execution
60
+ end
61
+
62
+ def process_stderr(execution, stderr)
63
+ if stderr && stderr_contents
64
+ stderr.write(stderr_contents)
65
+ return execution.merge(stderr_contents:)
66
+ end
67
+
68
+ execution
69
+ end
70
+
71
+ def process_stdin(execution, stdin)
72
+ return execution.merge(stdin_contents: stdin.read) if stdin
73
+
74
+ execution
26
75
  end
27
76
  end
28
77
  end
data/lib/lino/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Lino
4
- VERSION = '3.2.0.pre.7'
4
+ VERSION = '3.2.0.pre.8'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lino
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.0.pre.7
4
+ version: 3.2.0.pre.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - InfraBlocks Maintainers