aruba 0.4.10 → 0.4.11
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.
- 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
|