runtime_command 1.0.2 → 1.0.3

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
  SHA1:
3
- metadata.gz: 4acfdf8648af8a1fca15a5d77e385db6c3c734af
4
- data.tar.gz: 41113e55413d7a6878b57045e2d846f52e94ab5b
3
+ metadata.gz: f8e242795477317ba019e209a85a6ab44af589ae
4
+ data.tar.gz: 3a0fcbcd6a519ee5f15c38860b6b8dc0bc1db1ac
5
5
  SHA512:
6
- metadata.gz: 17afa77baaacc6e4e9e962f78fee8fef7a2c93dc48c9a72957a062e7da2c65383a8210cc211acc13379e49799da6e36949a126c2745292ed9826353c3a200369
7
- data.tar.gz: a8bc40057ee9bce2c4c4d53ed645ac78427786ddcbd375b96715a0a8e68579089de4ac85408f538568927ef457c4747fb976dfa3855591a6688bd2d20dcbf644
6
+ metadata.gz: b0189a198f5d1f0adef08e7b776427d445a33bb30b2919fdd8d1c99fe9d1f2dba3f3fe8f4e7d2d956883cbb008a7dc6bbd1b925d59bb68b0dcd50d022c200f98
7
+ data.tar.gz: 7320be85b803f7124d623745b8903555fd1eafe28c00025ecc3ad5e3b938379a25559e2bc3ca3a3322bcf2cc0d12534044ca7a8701a2240997dafe5129c5d03b
@@ -25,7 +25,7 @@ module RuntimeCommand
25
25
  logger = Logger.new(@output, @colors)
26
26
  logger.stdin(@stdin_prefix + ' ' + command)
27
27
 
28
- begin
28
+ invoke_command(logger) do
29
29
  Open3.popen3(command, chdir: chdir) do |stdin, stdout, stderr|
30
30
  stdin.close
31
31
 
@@ -37,13 +37,28 @@ module RuntimeCommand
37
37
  logger.stderr(message)
38
38
  end
39
39
  end
40
+ end
40
41
 
41
- rescue Interrupt
42
- logger.stderr('Interrupt error')
43
- rescue => e
44
- logger.stderr(e.to_s)
45
- ensure
46
- @buffered_log << logger.buffered_log
42
+ logger
43
+ end
44
+
45
+ # @param [String] command
46
+ # @param [String] chdir
47
+ # @return [RuntimeCommand::Logger]
48
+ def exec_capture(command, chdir = nil)
49
+ chdir ||= @base_dir
50
+
51
+ logger = Logger.new(@output, @colors)
52
+ invoke_command(logger) do
53
+ stdout, stderr = Open3.capture3(command, chdir: chdir)
54
+
55
+ unless stdout.empty?
56
+ logger.stdout(stdout)
57
+ end
58
+
59
+ unless stderr.empty?
60
+ logger.stderr(stderr)
61
+ end
47
62
  end
48
63
 
49
64
  logger
@@ -68,5 +83,22 @@ module RuntimeCommand
68
83
  @buffered_log << logger.buffered_log + "\n"
69
84
  logger
70
85
  end
86
+
87
+ private
88
+
89
+ # @param [RuntimeCommand::Logger] logger
90
+ def invoke_command(logger)
91
+ begin
92
+ yield
93
+ rescue Interrupt
94
+ logger.stderr('Interrupt error')
95
+ rescue => e
96
+ logger.stderr(e.to_s)
97
+ ensure
98
+ @buffered_log << logger.buffered_log
99
+ end
100
+
101
+ nil
102
+ end
71
103
  end
72
104
  end
@@ -1,3 +1,3 @@
1
1
  module RuntimeCommand
2
- VERSION = '1.0.2'.freeze
2
+ VERSION = '1.0.3'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: runtime_command
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - naomichi-y
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-03-23 00:00:00.000000000 Z
11
+ date: 2017-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: highline