aruba 0.4.10 → 0.4.11
Sign up to get free protection for your applications and to get access to all the features.
- data/.rspec +1 -0
- data/History.md +4 -0
- data/Rakefile +9 -3
- data/aruba.gemspec +2 -2
- data/lib/aruba/api.rb +51 -6
- data/lib/aruba/process.rb +6 -4
- data/spec/aruba/api_spec.rb +49 -0
- data/spec/aruba/process_spec.rb +33 -0
- data/spec/spec_helper.rb +8 -0
- metadata +27 -20
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
data/History.md
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
## [v0.4.11](https://github.com/cucumber/aruba/compare/v0.4.10...v0.4.11)
|
2
|
+
* Fix duplicated output (#91 Robert Wahler, Matt Wynne)
|
3
|
+
* Fix Gemspec format (#101 Matt Wynne)
|
4
|
+
|
1
5
|
## [v0.4.10](https://github.com/cucumber/aruba/compare/v0.4.9...v0.4.10)
|
2
6
|
* Fix broken JRuby file following rename of hook (Thomas Reynolds)
|
3
7
|
* Add terminate method to API (Taylor Carpenter)
|
data/Rakefile
CHANGED
@@ -12,8 +12,14 @@ Cucumber::Rake::Task.new do |t|
|
|
12
12
|
t.cucumber_opts = opts
|
13
13
|
end
|
14
14
|
|
15
|
-
|
16
|
-
|
15
|
+
require 'rspec/core/rake_task'
|
16
|
+
desc "Run RSpec"
|
17
|
+
RSpec::Core::RakeTask.new do |spec|
|
18
|
+
spec.pattern = 'spec/**/*_spec.rb'
|
19
|
+
spec.rspec_opts = ['--color', '--format nested']
|
17
20
|
end
|
18
21
|
|
19
|
-
|
22
|
+
desc "Run tests, both RSpec and Cucumber"
|
23
|
+
task :test => [:spec, :cucumber]
|
24
|
+
|
25
|
+
task :default => :test
|
data/aruba.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = 'aruba'
|
5
|
-
s.version = '0.4.
|
5
|
+
s.version = '0.4.11'
|
6
6
|
s.authors = ["Aslak Hellesøy", "David Chelimsky", "Mike Sassak", "Matt Wynne"]
|
7
7
|
s.description = 'CLI Steps for Cucumber, hand-crafted for you in Aruba'
|
8
8
|
s.summary = "aruba-#{s.version}"
|
@@ -11,7 +11,7 @@ Gem::Specification.new do |s|
|
|
11
11
|
|
12
12
|
s.add_runtime_dependency 'cucumber', '>= 1.1.1'
|
13
13
|
s.add_runtime_dependency 'childprocess', '>= 0.2.3'
|
14
|
-
s.add_runtime_dependency 'ffi', '1.0.11'
|
14
|
+
s.add_runtime_dependency 'ffi', '>= 1.0.11'
|
15
15
|
s.add_runtime_dependency 'rspec', '>= 2.7.0'
|
16
16
|
s.add_development_dependency 'bcat', '>= 0.6.1'
|
17
17
|
s.add_development_dependency 'rdiscount', '>= 1.6.8'
|
data/lib/aruba/api.rb
CHANGED
@@ -267,8 +267,8 @@ module Aruba
|
|
267
267
|
in_current_dir do
|
268
268
|
Aruba.config.hooks.execute(:before_cmd, self, cmd)
|
269
269
|
|
270
|
-
|
271
|
-
|
270
|
+
announcer.dir(Dir.pwd)
|
271
|
+
announcer.cmd(cmd)
|
272
272
|
|
273
273
|
process = Process.new(cmd, exit_timeout, io_wait)
|
274
274
|
register_process(cmd, process)
|
@@ -359,7 +359,7 @@ module Aruba
|
|
359
359
|
end
|
360
360
|
|
361
361
|
def set_env(key, value)
|
362
|
-
|
362
|
+
announcer.env(key, value)
|
363
363
|
original_env[key] = ENV.delete(key)
|
364
364
|
ENV[key] = value
|
365
365
|
end
|
@@ -384,13 +384,58 @@ module Aruba
|
|
384
384
|
end
|
385
385
|
|
386
386
|
def stop_process(process)
|
387
|
-
@last_exit_status = process.stop(@aruba_keep_ansi)
|
388
|
-
announce_or_puts(process.stdout(@aruba_keep_ansi)) if @announce_stdout
|
389
|
-
announce_or_puts(process.stderr(@aruba_keep_ansi)) if @announce_stderr
|
387
|
+
@last_exit_status = process.stop(announcer, @aruba_keep_ansi)
|
390
388
|
end
|
391
389
|
|
392
390
|
def terminate_process(process)
|
393
391
|
process.terminate(@aruba_keep_ansi)
|
394
392
|
end
|
393
|
+
|
394
|
+
def announcer
|
395
|
+
Announcer.new(self,
|
396
|
+
:stdout => @announce_stdout,
|
397
|
+
:stderr => @announce_stderr,
|
398
|
+
:dir => @announce_dir,
|
399
|
+
:cmd => @announce_cmd,
|
400
|
+
:env => @announce_env)
|
401
|
+
end
|
402
|
+
|
403
|
+
class Announcer
|
404
|
+
def initialize(session, options = {})
|
405
|
+
@session, @options = session, options
|
406
|
+
end
|
407
|
+
|
408
|
+
def stdout(content)
|
409
|
+
return unless @options[:stdout]
|
410
|
+
print content
|
411
|
+
end
|
412
|
+
|
413
|
+
def stderr(content)
|
414
|
+
return unless @options[:stderr]
|
415
|
+
print content
|
416
|
+
end
|
417
|
+
|
418
|
+
def dir(dir)
|
419
|
+
return unless @options[:dir]
|
420
|
+
print "$ cd #{dir}"
|
421
|
+
end
|
422
|
+
|
423
|
+
def cmd(cmd)
|
424
|
+
return unless @options[:cmd]
|
425
|
+
print "$ #{cmd}"
|
426
|
+
end
|
427
|
+
|
428
|
+
def env(key, value)
|
429
|
+
return unless @options[:env]
|
430
|
+
print %{$ export #{key}="#{value}"}
|
431
|
+
end
|
432
|
+
|
433
|
+
private
|
434
|
+
|
435
|
+
def print(message)
|
436
|
+
@session.announce_or_puts(message)
|
437
|
+
end
|
438
|
+
end
|
439
|
+
|
395
440
|
end
|
396
441
|
end
|
data/lib/aruba/process.rb
CHANGED
@@ -48,12 +48,14 @@ module Aruba
|
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
51
|
-
def stop(keep_ansi)
|
52
|
-
|
53
|
-
|
51
|
+
def stop(reader, keep_ansi)
|
52
|
+
return unless @process
|
53
|
+
unless @process.exited?
|
54
|
+
reader.stdout stdout(keep_ansi)
|
55
|
+
reader.stderr stderr(keep_ansi)
|
54
56
|
@process.poll_for_exit(@exit_timeout)
|
55
|
-
@process.exit_code
|
56
57
|
end
|
58
|
+
@process.exit_code
|
57
59
|
end
|
58
60
|
|
59
61
|
def terminate(keep_ansi)
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Aruba::Api do
|
4
|
+
|
5
|
+
before(:each) do
|
6
|
+
klass = Class.new {
|
7
|
+
include Aruba::Api
|
8
|
+
|
9
|
+
def set_tag(tag_name, value)
|
10
|
+
self.instance_variable_set "@#{tag_name.to_s}", value
|
11
|
+
end
|
12
|
+
|
13
|
+
def announce_or_puts(*args)
|
14
|
+
p caller[0..2]
|
15
|
+
end
|
16
|
+
}
|
17
|
+
@aruba = klass.new
|
18
|
+
end
|
19
|
+
|
20
|
+
describe 'current_dir' do
|
21
|
+
it "should return the current dir as 'tmp/aruba'" do
|
22
|
+
@aruba.current_dir.should match(/^tmp\/aruba$/)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe 'tags' do
|
27
|
+
describe '@announce_stdout' do
|
28
|
+
|
29
|
+
context 'enabled' do
|
30
|
+
it "should announce to stdout exactly once" do
|
31
|
+
@aruba.should_receive(:announce_or_puts).once
|
32
|
+
@aruba.set_tag(:announce_stdout, true)
|
33
|
+
@aruba.run_simple("ruby -e 'puts \"hello world\"'", false)
|
34
|
+
@aruba.all_output.should match(/hello world/)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
context 'disabled' do
|
39
|
+
it "should not announce to stdout" do
|
40
|
+
@aruba.should_not_receive(:announce_or_puts)
|
41
|
+
@aruba.set_tag(:announce_stdout, false)
|
42
|
+
@aruba.run_simple("ruby -e 'puts \"hello world\"'", false)
|
43
|
+
@aruba.all_output.should match(/hello world/)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'aruba/process'
|
2
|
+
|
3
|
+
module Aruba
|
4
|
+
describe Process do
|
5
|
+
|
6
|
+
let(:process) { Process.new('echo "yo"', 0, 0.1) }
|
7
|
+
|
8
|
+
describe "#stdout" do
|
9
|
+
before { process.run! }
|
10
|
+
|
11
|
+
it "returns the stdout" do
|
12
|
+
process.stdout(false).should == "yo\n"
|
13
|
+
end
|
14
|
+
|
15
|
+
it "returns all the stdout, every time you call it" do
|
16
|
+
process.stdout(false).should == "yo\n"
|
17
|
+
process.stdout(false).should == "yo\n"
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
describe "#stop" do
|
23
|
+
before { process.run! }
|
24
|
+
|
25
|
+
it "sends any output to the reader" do
|
26
|
+
reader = stub.as_null_object
|
27
|
+
reader.should_receive(:stdout).with("yo\n")
|
28
|
+
process.stop(reader, false)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aruba
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.11
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -12,11 +12,11 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2011-12-
|
15
|
+
date: 2011-12-27 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: cucumber
|
19
|
-
requirement: &
|
19
|
+
requirement: &2156140500 !ruby/object:Gem::Requirement
|
20
20
|
none: false
|
21
21
|
requirements:
|
22
22
|
- - ! '>='
|
@@ -24,10 +24,10 @@ dependencies:
|
|
24
24
|
version: 1.1.1
|
25
25
|
type: :runtime
|
26
26
|
prerelease: false
|
27
|
-
version_requirements: *
|
27
|
+
version_requirements: *2156140500
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: childprocess
|
30
|
-
requirement: &
|
30
|
+
requirement: &2156139860 !ruby/object:Gem::Requirement
|
31
31
|
none: false
|
32
32
|
requirements:
|
33
33
|
- - ! '>='
|
@@ -35,21 +35,21 @@ dependencies:
|
|
35
35
|
version: 0.2.3
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
|
-
version_requirements: *
|
38
|
+
version_requirements: *2156139860
|
39
39
|
- !ruby/object:Gem::Dependency
|
40
40
|
name: ffi
|
41
|
-
requirement: &
|
41
|
+
requirement: &2156139040 !ruby/object:Gem::Requirement
|
42
42
|
none: false
|
43
43
|
requirements:
|
44
|
-
- -
|
44
|
+
- - ! '>='
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: 1.0.11
|
47
47
|
type: :runtime
|
48
48
|
prerelease: false
|
49
|
-
version_requirements: *
|
49
|
+
version_requirements: *2156139040
|
50
50
|
- !ruby/object:Gem::Dependency
|
51
51
|
name: rspec
|
52
|
-
requirement: &
|
52
|
+
requirement: &2156137020 !ruby/object:Gem::Requirement
|
53
53
|
none: false
|
54
54
|
requirements:
|
55
55
|
- - ! '>='
|
@@ -57,10 +57,10 @@ dependencies:
|
|
57
57
|
version: 2.7.0
|
58
58
|
type: :runtime
|
59
59
|
prerelease: false
|
60
|
-
version_requirements: *
|
60
|
+
version_requirements: *2156137020
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: bcat
|
63
|
-
requirement: &
|
63
|
+
requirement: &2156135300 !ruby/object:Gem::Requirement
|
64
64
|
none: false
|
65
65
|
requirements:
|
66
66
|
- - ! '>='
|
@@ -68,10 +68,10 @@ dependencies:
|
|
68
68
|
version: 0.6.1
|
69
69
|
type: :development
|
70
70
|
prerelease: false
|
71
|
-
version_requirements: *
|
71
|
+
version_requirements: *2156135300
|
72
72
|
- !ruby/object:Gem::Dependency
|
73
73
|
name: rdiscount
|
74
|
-
requirement: &
|
74
|
+
requirement: &2156134580 !ruby/object:Gem::Requirement
|
75
75
|
none: false
|
76
76
|
requirements:
|
77
77
|
- - ! '>='
|
@@ -79,10 +79,10 @@ dependencies:
|
|
79
79
|
version: 1.6.8
|
80
80
|
type: :development
|
81
81
|
prerelease: false
|
82
|
-
version_requirements: *
|
82
|
+
version_requirements: *2156134580
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: rake
|
85
|
-
requirement: &
|
85
|
+
requirement: &2152010020 !ruby/object:Gem::Requirement
|
86
86
|
none: false
|
87
87
|
requirements:
|
88
88
|
- - ! '>='
|
@@ -90,7 +90,7 @@ dependencies:
|
|
90
90
|
version: 0.9.2
|
91
91
|
type: :development
|
92
92
|
prerelease: false
|
93
|
-
version_requirements: *
|
93
|
+
version_requirements: *2152010020
|
94
94
|
description: CLI Steps for Cucumber, hand-crafted for you in Aruba
|
95
95
|
email: cukes@googlegroups.com
|
96
96
|
executables: []
|
@@ -99,6 +99,7 @@ extra_rdoc_files: []
|
|
99
99
|
files:
|
100
100
|
- .document
|
101
101
|
- .gitignore
|
102
|
+
- .rspec
|
102
103
|
- .rvmrc
|
103
104
|
- .travis.yml
|
104
105
|
- Gemfile
|
@@ -126,7 +127,10 @@ files:
|
|
126
127
|
- lib/aruba/jruby.rb
|
127
128
|
- lib/aruba/process.rb
|
128
129
|
- lib/aruba/reporting.rb
|
130
|
+
- spec/aruba/api_spec.rb
|
129
131
|
- spec/aruba/hooks_spec.rb
|
132
|
+
- spec/aruba/process_spec.rb
|
133
|
+
- spec/spec_helper.rb
|
130
134
|
- templates/css/console.css
|
131
135
|
- templates/css/filesystem.css
|
132
136
|
- templates/css/pygments-autumn.css
|
@@ -155,7 +159,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
155
159
|
version: '0'
|
156
160
|
segments:
|
157
161
|
- 0
|
158
|
-
hash: -
|
162
|
+
hash: -1684218897228509684
|
159
163
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
160
164
|
none: false
|
161
165
|
requirements:
|
@@ -164,13 +168,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
164
168
|
version: '0'
|
165
169
|
segments:
|
166
170
|
- 0
|
167
|
-
hash: -
|
171
|
+
hash: -1684218897228509684
|
168
172
|
requirements: []
|
169
173
|
rubyforge_project:
|
170
174
|
rubygems_version: 1.8.10
|
171
175
|
signing_key:
|
172
176
|
specification_version: 3
|
173
|
-
summary: aruba-0.4.
|
177
|
+
summary: aruba-0.4.11
|
174
178
|
test_files:
|
175
179
|
- features/before_cmd_hooks.feature
|
176
180
|
- features/exit_statuses.feature
|
@@ -181,4 +185,7 @@ test_files:
|
|
181
185
|
- features/output.feature
|
182
186
|
- features/step_definitions/aruba_dev_steps.rb
|
183
187
|
- features/support/env.rb
|
188
|
+
- spec/aruba/api_spec.rb
|
184
189
|
- spec/aruba/hooks_spec.rb
|
190
|
+
- spec/aruba/process_spec.rb
|
191
|
+
- spec/spec_helper.rb
|