command_exec 0.1.3 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +6 -2
- data/Gemfile.lock +42 -18
- data/README.md +707 -72
- data/RELEASE_NOTES.md +62 -0
- data/Rakefile +40 -9
- data/TODO.md +8 -2
- data/command_exec.gemspec +3 -2
- data/gemfiles/Gemfile.default +28 -0
- data/gemfiles/Gemfile.travis +16 -0
- data/gemfiles/Gemfile.travis.lock +48 -0
- data/lib/command_exec.rb +22 -2
- data/lib/command_exec/command.rb +307 -157
- data/lib/command_exec/exceptions.rb +16 -6
- data/lib/command_exec/field_helper.rb +263 -0
- data/lib/command_exec/formatter/array.rb +158 -0
- data/lib/command_exec/formatter/hash.rb +78 -0
- data/lib/command_exec/formatter/json.rb +22 -0
- data/lib/command_exec/formatter/string.rb +22 -0
- data/lib/command_exec/formatter/xml.rb +22 -0
- data/lib/command_exec/formatter/yaml.rb +22 -0
- data/lib/command_exec/logger.rb +9 -0
- data/lib/command_exec/process.rb +294 -0
- data/lib/command_exec/spec_helper_module.rb +52 -0
- data/lib/command_exec/version.rb +1 -1
- data/script/console +8 -0
- data/spec/command/command_spec.rb +413 -117
- data/spec/command/test_data/echo_test +3 -0
- data/spec/command/test_data/exit_status_test +2 -0
- data/spec/command/test_data/log_file_test +3 -0
- data/spec/command/test_data/logger_test +2 -0
- data/spec/command/test_data/not_raise_error_test +4 -0
- data/spec/command/test_data/not_throw_error_test +4 -0
- data/spec/command/test_data/output_test +6 -0
- data/spec/command/test_data/raise_error_test +6 -0
- data/spec/command/test_data/runner_open3_test +4 -0
- data/spec/command/test_data/runner_system_test +4 -0
- data/spec/command/test_data/stderr_test +4 -0
- data/spec/command/test_data/stdout_multiple_lines_test +4 -0
- data/spec/command/test_data/stdout_test +4 -0
- data/spec/command/test_data/throw_error_test +6 -0
- data/spec/command/test_data/true_test +2 -0
- data/spec/formatter/array_spec.rb +215 -0
- data/spec/formatter/hash_spec.rb +117 -0
- data/spec/formatter/json_spec.rb +21 -0
- data/spec/formatter/xml_spec.rb +33 -0
- data/spec/formatter/yaml_spec.rb +21 -0
- data/spec/process/process_spec.rb +329 -0
- data/spec/spec_helper.rb +15 -4
- metadata +79 -5
@@ -0,0 +1,33 @@
|
|
1
|
+
#encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Formatter::XML do
|
6
|
+
before :each do
|
7
|
+
@formatter = Formatter::XML.new
|
8
|
+
end
|
9
|
+
|
10
|
+
it "outputs data as XML string" do
|
11
|
+
@formatter.stderr(["output of stderr"])
|
12
|
+
@formatter.stdout("output of stdout")
|
13
|
+
@formatter.log_file("output of log file")
|
14
|
+
@formatter.return_code("output of return code")
|
15
|
+
@formatter.pid(4711)
|
16
|
+
@formatter.status(:failed)
|
17
|
+
@formatter.executable('/usr/bin/true')
|
18
|
+
|
19
|
+
expect(@formatter.output(:stdout,:stderr)).to eq("<command>\n <stdout>output of stdout</stdout>\n <stderr>output of stderr</stderr>\n</command>\n")
|
20
|
+
end
|
21
|
+
|
22
|
+
it "outputs data as XML string (attributes with multiple values)" do
|
23
|
+
@formatter.stderr(["output of stderr 1/2", "output of stderr 2/2"])
|
24
|
+
@formatter.stdout("output of stdout")
|
25
|
+
@formatter.log_file("output of log file")
|
26
|
+
@formatter.return_code("output of return code")
|
27
|
+
@formatter.pid(4711)
|
28
|
+
@formatter.status(:failed)
|
29
|
+
@formatter.executable('/usr/bin/true')
|
30
|
+
|
31
|
+
expect(@formatter.output(:stdout,:stderr)).to eq("<command>\n <stdout>output of stdout</stdout>\n <stderr>output of stderr 1/2</stderr>\n <stderr>output of stderr 2/2</stderr>\n</command>\n")
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
#encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Formatter::YAML do
|
6
|
+
before :each do
|
7
|
+
@formatter = Formatter::YAML.new
|
8
|
+
end
|
9
|
+
|
10
|
+
it "outputs data as yaml string" do
|
11
|
+
@formatter.stderr(["output of stderr"])
|
12
|
+
@formatter.stdout("output of stdout")
|
13
|
+
@formatter.log_file("output of log file")
|
14
|
+
@formatter.return_code("output of return code")
|
15
|
+
@formatter.pid(4711)
|
16
|
+
@formatter.status(:failed)
|
17
|
+
@formatter.executable('/usr/bin/true')
|
18
|
+
|
19
|
+
expect(@formatter.output(:stdout,:stderr)).to eq("---\n:stdout:\n- output of stdout\n:stderr:\n- output of stderr\n")
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,329 @@
|
|
1
|
+
#encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe CommandExec::Process do
|
6
|
+
|
7
|
+
let(:dev_null) { StringIO.new }
|
8
|
+
|
9
|
+
context :private_api do; end
|
10
|
+
|
11
|
+
context :public_api do
|
12
|
+
|
13
|
+
it "has a executable" do
|
14
|
+
process = CommandExec::Process.new(lib_logger: Logger.new(dev_null))
|
15
|
+
process.executable = '/bin/sh'
|
16
|
+
expect(process.executable).to eq('/bin/sh')
|
17
|
+
end
|
18
|
+
|
19
|
+
it "opens a log file" do
|
20
|
+
process = CommandExec::Process.new(lib_logger: Logger.new(dev_null))
|
21
|
+
tmp_file = create_temp_file_with('process.log' , 'this is content' )
|
22
|
+
process.log_file = tmp_file
|
23
|
+
|
24
|
+
expect(process.log_file).to eq(['this is content'])
|
25
|
+
end
|
26
|
+
|
27
|
+
it "accepts nil as filename" do
|
28
|
+
process = CommandExec::Process.new(lib_logger: Logger.new(dev_null))
|
29
|
+
process.log_file = nil
|
30
|
+
|
31
|
+
expect(process.log_file).to eq([])
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'accepts a start time' do
|
35
|
+
process = CommandExec::Process.new(lib_logger: Logger.new(dev_null))
|
36
|
+
time = Time.now
|
37
|
+
process.start_time = time
|
38
|
+
|
39
|
+
expect(process.start_time).to eq(time)
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'accepts an end time' do
|
43
|
+
process = CommandExec::Process.new(lib_logger: Logger.new(dev_null))
|
44
|
+
time = Time.now
|
45
|
+
process.end_time = time
|
46
|
+
|
47
|
+
expect(process.end_time).to eq(time)
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'calculates the run time' do
|
51
|
+
process = CommandExec::Process.new(lib_logger: Logger.new(dev_null))
|
52
|
+
time = Time.now
|
53
|
+
process.start_time = time
|
54
|
+
process.end_time = time + 2.seconds
|
55
|
+
|
56
|
+
expect(process.run_time).to eq(2.seconds)
|
57
|
+
end
|
58
|
+
|
59
|
+
it "goes on with a warning, if log file doesn't exists" do
|
60
|
+
file = '/tmp/test1234.txt'
|
61
|
+
bucket = StringIO.new
|
62
|
+
process = CommandExec::Process.new(lib_logger: Logger.new(bucket))
|
63
|
+
tmp_file = create_temp_file_with('process.log' , 'this is content' )
|
64
|
+
process.log_file = file
|
65
|
+
process.log_file
|
66
|
+
|
67
|
+
expect(bucket.string[file]).to_not eq(nil)
|
68
|
+
end
|
69
|
+
|
70
|
+
it "takes stdout" do
|
71
|
+
process = CommandExec::Process.new(lib_logger: Logger.new(dev_null))
|
72
|
+
process.stdout = 'content'
|
73
|
+
expect(process.stdout).to eq(['content'])
|
74
|
+
|
75
|
+
process = CommandExec::Process.new(lib_logger: Logger.new(dev_null))
|
76
|
+
process.stdout = ['content']
|
77
|
+
expect(process.stdout).to eq(['content'])
|
78
|
+
end
|
79
|
+
|
80
|
+
it "takes stderr" do
|
81
|
+
process = CommandExec::Process.new(lib_logger: Logger.new(dev_null))
|
82
|
+
process.stderr = 'content'
|
83
|
+
expect(process.stderr).to eq(['content'])
|
84
|
+
|
85
|
+
process = CommandExec::Process.new(lib_logger: Logger.new(dev_null))
|
86
|
+
process.stderr = ['content']
|
87
|
+
expect(process.stderr).to eq(['content'])
|
88
|
+
end
|
89
|
+
|
90
|
+
it "takes a pid" do
|
91
|
+
process = CommandExec::Process.new(lib_logger: Logger.new(dev_null))
|
92
|
+
process.pid = 4711
|
93
|
+
expect(process.pid).to eq("4711")
|
94
|
+
|
95
|
+
process = CommandExec::Process.new(lib_logger: Logger.new(dev_null))
|
96
|
+
process.pid = "4711"
|
97
|
+
expect(process.pid).to eq("4711")
|
98
|
+
end
|
99
|
+
|
100
|
+
it "takes a status" do
|
101
|
+
process = CommandExec::Process.new(lib_logger: Logger.new(dev_null))
|
102
|
+
process.status = :failed
|
103
|
+
expect(process.status).to eq(:failed)
|
104
|
+
|
105
|
+
process = CommandExec::Process.new(lib_logger: Logger.new(dev_null))
|
106
|
+
process.status = :success
|
107
|
+
expect(process.status).to eq(:success)
|
108
|
+
|
109
|
+
process = CommandExec::Process.new(lib_logger: Logger.new(dev_null))
|
110
|
+
process.status = :unknown
|
111
|
+
expect(process.status).to eq(:failed)
|
112
|
+
end
|
113
|
+
|
114
|
+
it "takes a reason for a failure" do
|
115
|
+
process = CommandExec::Process.new(lib_logger: Logger.new(dev_null))
|
116
|
+
process.reason_for_failure = 'this is an error msg'
|
117
|
+
expect(process.reason_for_failure).to eq(['this is an error msg'])
|
118
|
+
end
|
119
|
+
|
120
|
+
it "takes a return code" do
|
121
|
+
process = CommandExec::Process.new(lib_logger: Logger.new(dev_null))
|
122
|
+
process.return_code = 1
|
123
|
+
expect(process.return_code).to eq(1)
|
124
|
+
end
|
125
|
+
|
126
|
+
it "returns an array" do
|
127
|
+
process = CommandExec::Process.new(lib_logger: Logger.new(dev_null))
|
128
|
+
|
129
|
+
process.stderr = "output of stderr"
|
130
|
+
process.stdout = "output of stdout"
|
131
|
+
process.log_file = create_temp_file_with('process.log' , 'output of log file' )
|
132
|
+
process.return_code = "output of return code"
|
133
|
+
process.status = :failed
|
134
|
+
process.pid = 4711
|
135
|
+
process.reason_for_failure = 'great an error occured'
|
136
|
+
process.executable = '/bin/true'
|
137
|
+
|
138
|
+
start_time = Time.now
|
139
|
+
end_time= start_time + 2.seconds
|
140
|
+
process.start_time = start_time
|
141
|
+
process.end_time = end_time
|
142
|
+
|
143
|
+
expect(process.to_a).to eq([
|
144
|
+
"===== STATUS =====",
|
145
|
+
"\e[1;31mFAILED\e[0m",
|
146
|
+
"===== RETURN CODE =====",
|
147
|
+
"output of return code",
|
148
|
+
"===== STDERR =====",
|
149
|
+
"output of stderr",
|
150
|
+
"===== STDOUT =====",
|
151
|
+
"output of stdout",
|
152
|
+
"===== LOG FILE =====",
|
153
|
+
"output of log file",
|
154
|
+
"===== PID =====",
|
155
|
+
"4711",
|
156
|
+
"===== REASON FOR FAILURE =====",
|
157
|
+
"great an error occured",
|
158
|
+
"===== EXECUTABLE =====",
|
159
|
+
"/bin/true",
|
160
|
+
"===== START TIME =====",
|
161
|
+
start_time,
|
162
|
+
"===== END TIME =====",
|
163
|
+
end_time,
|
164
|
+
])
|
165
|
+
|
166
|
+
expect(process.to_a(:status)).to eq([
|
167
|
+
"===== STATUS =====",
|
168
|
+
"\e[1;31mFAILED\e[0m",
|
169
|
+
])
|
170
|
+
|
171
|
+
end
|
172
|
+
|
173
|
+
it "returns a hash" do
|
174
|
+
process = CommandExec::Process.new(lib_logger: Logger.new(dev_null))
|
175
|
+
|
176
|
+
process.stderr = "output of stderr"
|
177
|
+
process.stdout = "output of stdout"
|
178
|
+
process.log_file = create_temp_file_with('process.log' , 'output of log file' )
|
179
|
+
process.return_code = "output of return code"
|
180
|
+
process.status = :failed
|
181
|
+
process.pid = 4711
|
182
|
+
process.reason_for_failure = 'great an error occured'
|
183
|
+
process.executable = '/usr/bin/true'
|
184
|
+
|
185
|
+
start_time = Time.now
|
186
|
+
end_time= start_time + 2.seconds
|
187
|
+
process.start_time = start_time
|
188
|
+
process.end_time = end_time
|
189
|
+
|
190
|
+
expect(process.to_h).to eq({
|
191
|
+
stderr: ["output of stderr"],
|
192
|
+
stdout: ["output of stdout"],
|
193
|
+
log_file: ["output of log file"],
|
194
|
+
return_code: ["output of return code"],
|
195
|
+
status: ['FAILED'],
|
196
|
+
pid: ['4711'],
|
197
|
+
reason_for_failure: ['great an error occured'],
|
198
|
+
executable: ['/usr/bin/true'],
|
199
|
+
start_time: [ start_time ],
|
200
|
+
end_time: [ end_time],
|
201
|
+
})
|
202
|
+
end
|
203
|
+
|
204
|
+
it 'returns a string version of process' do
|
205
|
+
process = CommandExec::Process.new(lib_logger: Logger.new(dev_null))
|
206
|
+
|
207
|
+
process.stderr = "output of stderr"
|
208
|
+
process.stdout = "output of stdout"
|
209
|
+
process.log_file = create_temp_file_with('process.log' , 'output of log file' )
|
210
|
+
process.return_code = "output of return code"
|
211
|
+
process.status = :failed
|
212
|
+
process.pid = 4711
|
213
|
+
process.reason_for_failure = 'great an error occured'
|
214
|
+
process.executable = '/usr/bin/true'
|
215
|
+
|
216
|
+
start_time = Time.now
|
217
|
+
end_time= start_time + 2.seconds
|
218
|
+
process.start_time = start_time
|
219
|
+
process.end_time = end_time
|
220
|
+
|
221
|
+
expect(process.to_s).to eq([
|
222
|
+
"===== STATUS =====",
|
223
|
+
"\e[1;31mFAILED\e[0m",
|
224
|
+
"===== RETURN CODE =====",
|
225
|
+
"output of return code",
|
226
|
+
"===== STDERR =====",
|
227
|
+
"output of stderr",
|
228
|
+
"===== STDOUT =====",
|
229
|
+
"output of stdout",
|
230
|
+
"===== LOG FILE =====",
|
231
|
+
"output of log file",
|
232
|
+
"===== PID =====",
|
233
|
+
"4711",
|
234
|
+
"===== REASON FOR FAILURE =====",
|
235
|
+
"great an error occured",
|
236
|
+
"===== EXECUTABLE =====",
|
237
|
+
"/usr/bin/true",
|
238
|
+
"===== START TIME =====",
|
239
|
+
start_time,
|
240
|
+
"===== END TIME =====",
|
241
|
+
end_time,
|
242
|
+
].join("\n")
|
243
|
+
)
|
244
|
+
end
|
245
|
+
|
246
|
+
it 'returns a json encoded string' do
|
247
|
+
process = CommandExec::Process.new(lib_logger: Logger.new(dev_null))
|
248
|
+
|
249
|
+
process.stderr = "output of stderr"
|
250
|
+
process.stdout = "output of stdout"
|
251
|
+
process.log_file = create_temp_file_with('process.log' , 'output of log file' )
|
252
|
+
process.return_code = "output of return code"
|
253
|
+
process.status = :failed
|
254
|
+
process.pid = 4711
|
255
|
+
process.reason_for_failure = 'great an error occured'
|
256
|
+
process.executable = '/usr/bin/true'
|
257
|
+
|
258
|
+
start_time = Time.now
|
259
|
+
end_time= start_time + 2.seconds
|
260
|
+
process.start_time = start_time
|
261
|
+
process.end_time = end_time
|
262
|
+
|
263
|
+
expect(process.to_json).to eq("{\"status\":[\"FAILED\"],\"return_code\":[\"output of return code\"],\"stderr\":[\"output of stderr\"],\"stdout\":[\"output of stdout\"],\"log_file\":[\"output of log file\"],\"pid\":[\"4711\"],\"reason_for_failure\":[\"great an error occured\"],\"executable\":[\"/usr/bin/true\"],\"start_time\":[\"#{start_time}\"],\"end_time\":[\"#{end_time}\"]}")
|
264
|
+
end
|
265
|
+
|
266
|
+
it 'returns a json encoded string and supports unicode as well' do
|
267
|
+
process = CommandExec::Process.new(lib_logger: Logger.new(dev_null))
|
268
|
+
|
269
|
+
process.stderr = "this is an 'ä'"
|
270
|
+
process.stdout = "output of stdout"
|
271
|
+
process.log_file = create_temp_file_with('process.log' , 'output of log file' )
|
272
|
+
process.return_code = "output of return code"
|
273
|
+
process.status = :failed
|
274
|
+
process.pid = 4711
|
275
|
+
process.reason_for_failure = 'great an error occured'
|
276
|
+
process.executable = '/usr/bin/true'
|
277
|
+
|
278
|
+
start_time = Time.now
|
279
|
+
end_time= start_time + 2.seconds
|
280
|
+
process.start_time = start_time
|
281
|
+
process.end_time = end_time
|
282
|
+
|
283
|
+
expect(process.to_json).to eq("{\"status\":[\"FAILED\"],\"return_code\":[\"output of return code\"],\"stderr\":[\"this is an 'ä'\"],\"stdout\":[\"output of stdout\"],\"log_file\":[\"output of log file\"],\"pid\":[\"4711\"],\"reason_for_failure\":[\"great an error occured\"],\"executable\":[\"/usr/bin/true\"],\"start_time\":[\"#{start_time}\"],\"end_time\":[\"#{end_time}\"]}")
|
284
|
+
end
|
285
|
+
|
286
|
+
it 'returns a yaml encoded string' do
|
287
|
+
process = CommandExec::Process.new(lib_logger: Logger.new(dev_null))
|
288
|
+
|
289
|
+
process.stderr = "output of stderr"
|
290
|
+
process.stdout = "output of stdout"
|
291
|
+
process.log_file = create_temp_file_with('process.log' , 'output of log file' )
|
292
|
+
process.return_code = "output of return code"
|
293
|
+
process.status = :failed
|
294
|
+
process.pid = 4711
|
295
|
+
process.reason_for_failure = 'great an error occured'
|
296
|
+
process.executable = '/usr/bin/true'
|
297
|
+
|
298
|
+
start_time = Time.now
|
299
|
+
end_time= start_time + 2.seconds
|
300
|
+
process.start_time = start_time
|
301
|
+
process.end_time = end_time
|
302
|
+
|
303
|
+
time_format_string = "%Y-%m-%d %H:%M:%S.%9N %:z"
|
304
|
+
|
305
|
+
expect(process.to_yaml).to eq("---\n:status:\n- FAILED\n:return_code:\n- output of return code\n:stderr:\n- output of stderr\n:stdout:\n- output of stdout\n:log_file:\n- output of log file\n:pid:\n- '4711'\n:reason_for_failure:\n- great an error occured\n:executable:\n- /usr/bin/true\n:start_time:\n- #{start_time.strftime(time_format_string)}\n:end_time:\n- #{end_time.strftime(time_format_string)}\n")
|
306
|
+
end
|
307
|
+
|
308
|
+
it 'returns a xml encoded string' do
|
309
|
+
process = CommandExec::Process.new(lib_logger: Logger.new(dev_null))
|
310
|
+
|
311
|
+
process.stderr = "output of stderr"
|
312
|
+
process.stdout = "output of stdout"
|
313
|
+
process.log_file = create_temp_file_with('process.log' , 'output of log file' )
|
314
|
+
process.return_code = "output of return code"
|
315
|
+
process.status = :failed
|
316
|
+
process.pid = 4711
|
317
|
+
process.reason_for_failure = 'great an error occured'
|
318
|
+
process.executable = '/usr/bin/true'
|
319
|
+
|
320
|
+
start_time = Time.now
|
321
|
+
end_time= start_time + 2.seconds
|
322
|
+
process.start_time = start_time
|
323
|
+
process.end_time = end_time
|
324
|
+
|
325
|
+
expect(process.to_xml).to eq("<command>\n <status>FAILED</status>\n <return_code>output of return code</return_code>\n <stderr>output of stderr</stderr>\n <stdout>output of stdout</stdout>\n <log_file>output of log file</log_file>\n <pid>4711</pid>\n <reason_for_failure>great an error occured</reason_for_failure>\n <executable>/usr/bin/true</executable>\n <start_time>#{start_time}</start_time>\n <end_time>#{end_time}</end_time>\n</command>\n")
|
326
|
+
end
|
327
|
+
|
328
|
+
end
|
329
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,21 +1,32 @@
|
|
1
1
|
#encoding: utf-8
|
2
|
+
|
2
3
|
$LOAD_PATH << File.expand_path('../lib' , File.dirname(__FILE__))
|
3
4
|
|
4
|
-
|
5
|
-
require '
|
5
|
+
unless ENV['TRAVIS_CI'] == 'true'
|
6
|
+
require 'pry'
|
7
|
+
require 'debugger'
|
8
|
+
require 'ap'
|
9
|
+
end
|
6
10
|
|
11
|
+
require 'stringio'
|
7
12
|
require 'tempfile'
|
8
13
|
|
9
|
-
|
10
|
-
|
14
|
+
unless ENV['TRAVIS_CI'] == 'true'
|
15
|
+
require 'simplecov'
|
16
|
+
SimpleCov.start
|
17
|
+
end
|
11
18
|
|
12
19
|
require 'command_exec'
|
13
20
|
require 'command_exec/spec_helper_module'
|
21
|
+
require 'active_support/core_ext/numeric/time'
|
14
22
|
|
15
23
|
include CommandExec
|
16
24
|
include CommandExec::Exceptions
|
17
25
|
|
18
26
|
RSpec.configure do |c|
|
19
27
|
c.include CommandExec::SpecHelper
|
28
|
+
c.treat_symbols_as_metadata_keys_with_true_values = true
|
29
|
+
c.filter_run_including :focus => true
|
20
30
|
end
|
21
31
|
|
32
|
+
#ENV['PATH'] = '/bin'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: command_exec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,10 +9,10 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-11-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
15
|
+
name: smart_colored
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
@@ -28,7 +28,23 @@ dependencies:
|
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: '0'
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
|
-
name:
|
31
|
+
name: activesupport
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: xml-simple
|
32
48
|
requirement: !ruby/object:Gem::Requirement
|
33
49
|
none: false
|
34
50
|
requirements:
|
@@ -51,21 +67,58 @@ extensions: []
|
|
51
67
|
extra_rdoc_files: []
|
52
68
|
files:
|
53
69
|
- .gitignore
|
70
|
+
- .travis.yml
|
71
|
+
- .yardopts
|
54
72
|
- Gemfile
|
55
73
|
- Gemfile.lock
|
56
74
|
- Guardfile
|
57
75
|
- LICENSE.md
|
58
76
|
- README.md
|
77
|
+
- RELEASE_NOTES.md
|
59
78
|
- Rakefile
|
60
79
|
- TODO.md
|
61
80
|
- command_exec.gemspec
|
81
|
+
- gemfiles/Gemfile.default
|
82
|
+
- gemfiles/Gemfile.travis
|
83
|
+
- gemfiles/Gemfile.travis.lock
|
62
84
|
- lib/command_exec.rb
|
63
85
|
- lib/command_exec/command.rb
|
64
86
|
- lib/command_exec/exceptions.rb
|
87
|
+
- lib/command_exec/field_helper.rb
|
88
|
+
- lib/command_exec/formatter/array.rb
|
89
|
+
- lib/command_exec/formatter/hash.rb
|
90
|
+
- lib/command_exec/formatter/json.rb
|
91
|
+
- lib/command_exec/formatter/string.rb
|
92
|
+
- lib/command_exec/formatter/xml.rb
|
93
|
+
- lib/command_exec/formatter/yaml.rb
|
94
|
+
- lib/command_exec/logger.rb
|
95
|
+
- lib/command_exec/process.rb
|
65
96
|
- lib/command_exec/spec_helper_module.rb
|
66
97
|
- lib/command_exec/version.rb
|
98
|
+
- script/console
|
67
99
|
- script/terminal
|
68
100
|
- spec/command/command_spec.rb
|
101
|
+
- spec/command/test_data/echo_test
|
102
|
+
- spec/command/test_data/exit_status_test
|
103
|
+
- spec/command/test_data/log_file_test
|
104
|
+
- spec/command/test_data/logger_test
|
105
|
+
- spec/command/test_data/not_raise_error_test
|
106
|
+
- spec/command/test_data/not_throw_error_test
|
107
|
+
- spec/command/test_data/output_test
|
108
|
+
- spec/command/test_data/raise_error_test
|
109
|
+
- spec/command/test_data/runner_open3_test
|
110
|
+
- spec/command/test_data/runner_system_test
|
111
|
+
- spec/command/test_data/stderr_test
|
112
|
+
- spec/command/test_data/stdout_multiple_lines_test
|
113
|
+
- spec/command/test_data/stdout_test
|
114
|
+
- spec/command/test_data/throw_error_test
|
115
|
+
- spec/command/test_data/true_test
|
116
|
+
- spec/formatter/array_spec.rb
|
117
|
+
- spec/formatter/hash_spec.rb
|
118
|
+
- spec/formatter/json_spec.rb
|
119
|
+
- spec/formatter/xml_spec.rb
|
120
|
+
- spec/formatter/yaml_spec.rb
|
121
|
+
- spec/process/process_spec.rb
|
69
122
|
- spec/spec_helper.rb
|
70
123
|
homepage: ''
|
71
124
|
licenses: []
|
@@ -87,11 +140,32 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
87
140
|
version: '0'
|
88
141
|
requirements: []
|
89
142
|
rubyforge_project:
|
90
|
-
rubygems_version: 1.8.
|
143
|
+
rubygems_version: 1.8.23
|
91
144
|
signing_key:
|
92
145
|
specification_version: 3
|
93
146
|
summary: Helper gem to exectue arbitrary shell commands
|
94
147
|
test_files:
|
95
148
|
- spec/command/command_spec.rb
|
149
|
+
- spec/command/test_data/echo_test
|
150
|
+
- spec/command/test_data/exit_status_test
|
151
|
+
- spec/command/test_data/log_file_test
|
152
|
+
- spec/command/test_data/logger_test
|
153
|
+
- spec/command/test_data/not_raise_error_test
|
154
|
+
- spec/command/test_data/not_throw_error_test
|
155
|
+
- spec/command/test_data/output_test
|
156
|
+
- spec/command/test_data/raise_error_test
|
157
|
+
- spec/command/test_data/runner_open3_test
|
158
|
+
- spec/command/test_data/runner_system_test
|
159
|
+
- spec/command/test_data/stderr_test
|
160
|
+
- spec/command/test_data/stdout_multiple_lines_test
|
161
|
+
- spec/command/test_data/stdout_test
|
162
|
+
- spec/command/test_data/throw_error_test
|
163
|
+
- spec/command/test_data/true_test
|
164
|
+
- spec/formatter/array_spec.rb
|
165
|
+
- spec/formatter/hash_spec.rb
|
166
|
+
- spec/formatter/json_spec.rb
|
167
|
+
- spec/formatter/xml_spec.rb
|
168
|
+
- spec/formatter/yaml_spec.rb
|
169
|
+
- spec/process/process_spec.rb
|
96
170
|
- spec/spec_helper.rb
|
97
171
|
has_rdoc:
|