rspactor 0.6.4 → 0.7.0.beta.1
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/LICENSE +2 -2
- data/README.rdoc +62 -15
- data/bin/rspactor +10 -9
- data/ext/fsevent/extconf.rb +28 -0
- data/ext/fsevent/fsevent_watch.c +44 -0
- data/images/failed.png +0 -0
- data/images/success.png +0 -0
- data/lib/growl/growl_formatter.rb +35 -0
- data/lib/rspactor/inspector.rb +36 -102
- data/lib/rspactor/interactor.rb +24 -92
- data/lib/rspactor/listener.rb +33 -62
- data/lib/rspactor/runner.rb +33 -173
- data/lib/rspactor/ui.rb +37 -0
- data/lib/rspactor/version.rb +3 -0
- data/lib/rspactor.rb +26 -7
- metadata +79 -46
- data/.gitignore +0 -21
- data/.rspactor +0 -0
- data/Rakefile +0 -50
- data/VERSION +0 -1
- data/lib/cucumber_growler.rb +0 -61
- data/lib/rspactor/growl.rb +0 -14
- data/lib/rspactor/spork.rb +0 -60
- data/lib/rspec_growler.rb +0 -24
- data/rspactor.gemspec +0 -70
- data/spec/inspector_spec.rb +0 -131
- data/spec/listener_spec.rb +0 -39
- data/spec/runner_spec.rb +0 -265
data/lib/rspactor/runner.rb
CHANGED
@@ -1,195 +1,55 @@
|
|
1
|
-
require '
|
1
|
+
require 'growl'
|
2
2
|
|
3
3
|
module RSpactor
|
4
4
|
class Runner
|
5
|
-
|
6
|
-
run_in = options.delete(:run_in) || Dir.pwd
|
7
|
-
new(run_in, options).start
|
8
|
-
end
|
9
|
-
|
10
|
-
attr_reader :dir, :options, :inspector, :interactor, :spork
|
11
|
-
|
12
|
-
def initialize(dir, options = {})
|
13
|
-
@dir = dir
|
14
|
-
@options = options
|
15
|
-
@spork = Spork.new(self) if options[:spork]
|
16
|
-
read_git_head
|
17
|
-
end
|
18
|
-
|
19
|
-
def start
|
20
|
-
load_dotfile
|
21
|
-
puts "** RSpactor, now watching at '#{dir}'"
|
22
|
-
spork.start if spork?
|
23
|
-
start_interactor
|
24
|
-
start_listener
|
25
|
-
end
|
26
|
-
|
27
|
-
def start_interactor
|
28
|
-
@interactor = Interactor.new(self)
|
29
|
-
message = "** Hit <enter> to skip initial spec #{"& cucumber " if cucumber?}run"
|
30
|
-
aborted = options[:skip] || @interactor.wait_for_enter_key(message, 2, false)
|
31
|
-
@interactor.start_termination_handler
|
32
|
-
unless aborted
|
33
|
-
run_all_specs
|
34
|
-
run_cucumber_command('~@wip,~@pending', false)
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
def start_listener
|
39
|
-
@inspector = Inspector.new(self)
|
40
|
-
|
41
|
-
Listener.new(Inspector::EXTENSIONS) do |files|
|
42
|
-
changed_files(files) unless git_head_changed?
|
43
|
-
end.run(dir)
|
44
|
-
end
|
45
|
-
|
46
|
-
def load_dotfile
|
47
|
-
dotfile = File.join(ENV['HOME'], '.rspactor')
|
48
|
-
if File.exists?(dotfile)
|
49
|
-
begin
|
50
|
-
Kernel.load dotfile
|
51
|
-
rescue => e
|
52
|
-
$stderr.puts "Error while loading #{dotfile}: #{e}"
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
5
|
+
attr_reader :pipe
|
56
6
|
|
57
|
-
def
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
def run_spec_command(paths)
|
62
|
-
paths = Array(paths)
|
63
|
-
if paths.empty?
|
64
|
-
@last_run_failed = nil
|
7
|
+
def start(options = {})
|
8
|
+
if options[:all]
|
9
|
+
command = rspec_command(["spec"])
|
10
|
+
message = "Running all specs"
|
65
11
|
else
|
66
|
-
|
67
|
-
|
12
|
+
command = rspec_command(Inspector.spec_paths)
|
13
|
+
message = "Running: #{Inspector.spec_paths.join(' ') }"
|
68
14
|
end
|
15
|
+
run_rspec(command, message)
|
69
16
|
end
|
70
17
|
|
71
|
-
def
|
72
|
-
|
73
|
-
|
74
|
-
system("clear;") if clear
|
75
|
-
puts "** Running all #{tags} tagged features..."
|
76
|
-
cmd = [ruby_opts, cucumber_runner, cucumber_opts(tags)].flatten.join(' ')
|
77
|
-
@last_run_failed = run_command(cmd)
|
78
|
-
end
|
79
|
-
|
80
|
-
def last_run_failed?
|
81
|
-
@last_run_failed == false
|
82
|
-
end
|
83
|
-
|
84
|
-
def cucumber?
|
85
|
-
@cucumber ||= File.exist?(File.join(dir, 'features'))
|
86
|
-
end
|
87
|
-
|
88
|
-
def spork?
|
89
|
-
spork != nil
|
90
|
-
end
|
91
|
-
|
92
|
-
protected
|
93
|
-
|
94
|
-
def run_command(cmd)
|
95
|
-
system(cmd)
|
96
|
-
$?.success?
|
18
|
+
def stop
|
19
|
+
Process.kill("ABRT", pipe.pid)
|
20
|
+
@pipe = nil
|
97
21
|
end
|
98
22
|
|
99
|
-
def
|
100
|
-
|
101
|
-
all.concat inspector.determine_files(file)
|
102
|
-
end
|
103
|
-
unless files.empty?
|
104
|
-
|
105
|
-
# cucumber features
|
106
|
-
if files.delete('cucumber')
|
107
|
-
run_cucumber_command
|
108
|
-
end
|
109
|
-
|
110
|
-
# specs files
|
111
|
-
unless files.empty?
|
112
|
-
system("clear;") if @options[:clear]
|
113
|
-
files.uniq!
|
114
|
-
puts files.map { |f| f.to_s.gsub(/#{dir}/, '') }.join("\n")
|
115
|
-
|
116
|
-
previous_run_failed = last_run_failed?
|
117
|
-
run_spec_command(files)
|
118
|
-
|
119
|
-
if options[:retry_failed] and previous_run_failed and not last_run_failed?
|
120
|
-
run_all_specs
|
121
|
-
end
|
122
|
-
end
|
123
|
-
end
|
23
|
+
def run?
|
24
|
+
pipe && pipe.pid != nil
|
124
25
|
end
|
125
26
|
|
126
27
|
private
|
127
28
|
|
128
|
-
def
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
# only add the "progress" formatter unless no other (besides growl) is specified
|
137
|
-
opts << ' -f progress' unless opts.scan(/\s(?:-f|--format)\b/).length > 1
|
138
|
-
opts
|
139
|
-
end
|
140
|
-
|
141
|
-
def cucumber_opts(tags)
|
142
|
-
opts = "--profile rspactor"
|
143
|
-
opts << " --drb" if spork
|
144
|
-
opts << " --tags #{tags}"
|
145
|
-
opts << cucumber_formatter_opts
|
146
|
-
opts << " --require features" # because using require option overwrite default require
|
147
|
-
opts << " features"
|
148
|
-
opts
|
149
|
-
end
|
150
|
-
|
151
|
-
def spec_formatter_opts
|
152
|
-
" --require #{File.dirname(__FILE__)}/../rspec_growler.rb --format RSpecGrowler:STDOUT"
|
153
|
-
end
|
154
|
-
|
155
|
-
def cucumber_formatter_opts
|
156
|
-
" --require #{File.dirname(__FILE__)}/../cucumber_growler.rb"
|
157
|
-
end
|
158
|
-
|
159
|
-
def spec_runner
|
160
|
-
if File.exist?("script/spec")
|
161
|
-
"script/spec"
|
162
|
-
else
|
163
|
-
"spec"
|
164
|
-
end
|
165
|
-
end
|
166
|
-
|
167
|
-
def cucumber_runner
|
168
|
-
if File.exist?("script/cucumber")
|
169
|
-
"script/cucumber"
|
170
|
-
else
|
171
|
-
"cucumber"
|
29
|
+
def run_rspec(command, message)
|
30
|
+
@pipe = IO.popen(command)
|
31
|
+
UI.info message, :reset => true, :clear => RSpactor.options[:clear]
|
32
|
+
while pipe && !pipe.eof?
|
33
|
+
if pipe && char = pipe.read(8)
|
34
|
+
print char
|
35
|
+
$stdout.flush if pipe
|
36
|
+
end
|
172
37
|
end
|
38
|
+
@pipe = nil
|
173
39
|
end
|
174
40
|
|
175
|
-
def
|
176
|
-
|
177
|
-
|
178
|
-
|
41
|
+
def rspec_command(paths)
|
42
|
+
cmd_parts = [paths.join(' ')]
|
43
|
+
cmd_parts.unshift "--require #{File.dirname(__FILE__)}/../growl/growl_formatter.rb --format GrowlFormatter" if Growl.installed?
|
44
|
+
cmd_parts.unshift "--color"
|
45
|
+
cmd_parts.unshift "rspec"
|
46
|
+
cmd_parts.unshift "bundle exec" if bundler?
|
47
|
+
cmd_parts.join(" ")
|
179
48
|
end
|
180
49
|
|
181
|
-
def
|
182
|
-
|
183
|
-
read_git_head
|
184
|
-
@git_head and old_git_head and @git_head != old_git_head
|
50
|
+
def bundler?
|
51
|
+
File.exist?("./Gemfile")
|
185
52
|
end
|
186
53
|
|
187
|
-
def read_git_head
|
188
|
-
git_head_file = File.join(dir, '.git', 'HEAD')
|
189
|
-
@git_head = File.exists?(git_head_file) && File.read(git_head_file)
|
190
|
-
end
|
191
54
|
end
|
192
|
-
end
|
193
|
-
|
194
|
-
# backward compatibility
|
195
|
-
Runner = RSpactor::Runner
|
55
|
+
end
|
data/lib/rspactor/ui.rb
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
module RSpactor
|
2
|
+
module UI
|
3
|
+
class << self
|
4
|
+
|
5
|
+
def info(message, options = {})
|
6
|
+
unless test?
|
7
|
+
reset_line if options[:reset]
|
8
|
+
clear if options[:clear]
|
9
|
+
puts reset_color(message)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def reset_line
|
14
|
+
print "\r\e "
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def clear
|
20
|
+
system("clear;")
|
21
|
+
end
|
22
|
+
|
23
|
+
def test?
|
24
|
+
ENV["RSPACTOR_ENV"] == "test"
|
25
|
+
end
|
26
|
+
|
27
|
+
def reset_color(text)
|
28
|
+
color(text, "\e[0m")
|
29
|
+
end
|
30
|
+
|
31
|
+
def color(text, color_code)
|
32
|
+
"#{color_code}#{text}\e[0m"
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
data/lib/rspactor.rb
CHANGED
@@ -1,8 +1,27 @@
|
|
1
1
|
module RSpactor
|
2
|
-
|
3
|
-
autoload :
|
4
|
-
autoload :
|
5
|
-
autoload :
|
6
|
-
autoload :
|
7
|
-
autoload :
|
8
|
-
|
2
|
+
|
3
|
+
autoload :UI, 'rspactor/ui'
|
4
|
+
autoload :Interactor, 'rspactor/interactor'
|
5
|
+
autoload :Listener, 'rspactor/listener'
|
6
|
+
autoload :Inspector, 'rspactor/inspector'
|
7
|
+
autoload :Runner, 'rspactor/runner'
|
8
|
+
|
9
|
+
class << self
|
10
|
+
attr_reader :options, :listener, :runner
|
11
|
+
|
12
|
+
def start(options = {})
|
13
|
+
@options = options
|
14
|
+
@listener = Listener.new
|
15
|
+
@runner = Runner.new
|
16
|
+
Interactor.init_signal_traps
|
17
|
+
listener.watch do |files|
|
18
|
+
Inspector.determine_spec_paths(files)
|
19
|
+
runner.start if Inspector.spec_paths?
|
20
|
+
end
|
21
|
+
UI.info "RSpactor is now watching at '#{Dir.pwd}'"
|
22
|
+
listener.start
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
metadata
CHANGED
@@ -1,103 +1,136 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspactor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 62196433
|
5
|
+
prerelease: true
|
5
6
|
segments:
|
6
7
|
- 0
|
7
|
-
-
|
8
|
-
-
|
9
|
-
|
8
|
+
- 7
|
9
|
+
- 0
|
10
|
+
- beta
|
11
|
+
- 1
|
12
|
+
version: 0.7.0.beta.1
|
10
13
|
platform: ruby
|
11
14
|
authors:
|
12
|
-
- "Mislav Marohni\xC4\x87"
|
13
|
-
- Andreas Wolff
|
14
|
-
- Pelle Braendgaard
|
15
15
|
- Thibaud Guillaume-Gentil
|
16
16
|
autorequire:
|
17
17
|
bindir: bin
|
18
18
|
cert_chain: []
|
19
19
|
|
20
|
-
date: 2010-06-
|
21
|
-
default_executable:
|
20
|
+
date: 2010-06-30 00:00:00 +02:00
|
21
|
+
default_executable:
|
22
22
|
dependencies:
|
23
23
|
- !ruby/object:Gem::Dependency
|
24
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 83
|
30
|
+
segments:
|
31
|
+
- 1
|
32
|
+
- 16
|
33
|
+
- 2
|
34
|
+
version: 1.16.2
|
35
|
+
name: trollop
|
36
|
+
prerelease: false
|
37
|
+
requirement: *id001
|
38
|
+
type: :runtime
|
39
|
+
- !ruby/object:Gem::Dependency
|
40
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 62196479
|
46
|
+
segments:
|
47
|
+
- 2
|
48
|
+
- 0
|
49
|
+
- 0
|
50
|
+
- beta
|
51
|
+
- 14
|
52
|
+
version: 2.0.0.beta.14
|
24
53
|
name: rspec
|
25
54
|
prerelease: false
|
26
|
-
requirement:
|
55
|
+
requirement: *id002
|
56
|
+
type: :runtime
|
57
|
+
- !ruby/object:Gem::Dependency
|
58
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
59
|
+
none: false
|
27
60
|
requirements:
|
28
61
|
- - ">="
|
29
62
|
- !ruby/object:Gem::Version
|
63
|
+
hash: 17
|
30
64
|
segments:
|
31
65
|
- 1
|
32
|
-
-
|
33
|
-
-
|
34
|
-
version: 1.
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
66
|
+
- 0
|
67
|
+
- 3
|
68
|
+
version: 1.0.3
|
69
|
+
name: growl
|
70
|
+
prerelease: false
|
71
|
+
requirement: *id003
|
72
|
+
type: :runtime
|
73
|
+
description: RSpactor is a command line tool to automatically run your changed specs (much like autotest)
|
74
|
+
email:
|
75
|
+
- thibaud@thibaud.me
|
39
76
|
executables:
|
40
77
|
- rspactor
|
41
|
-
extensions:
|
78
|
+
extensions:
|
79
|
+
- ext/fsevent/extconf.rb
|
80
|
+
extra_rdoc_files: []
|
42
81
|
|
43
|
-
extra_rdoc_files:
|
44
|
-
- LICENSE
|
45
|
-
- README.rdoc
|
46
82
|
files:
|
47
|
-
- .gitignore
|
48
|
-
- .rspactor
|
49
|
-
- LICENSE
|
50
|
-
- README.rdoc
|
51
|
-
- Rakefile
|
52
|
-
- VERSION
|
53
83
|
- bin/rspactor
|
54
84
|
- images/failed.png
|
55
85
|
- images/pending.png
|
56
86
|
- images/success.png
|
57
|
-
- lib/
|
58
|
-
- lib/rspactor.rb
|
59
|
-
- lib/rspactor/growl.rb
|
87
|
+
- lib/growl/growl_formatter.rb
|
60
88
|
- lib/rspactor/inspector.rb
|
61
89
|
- lib/rspactor/interactor.rb
|
62
90
|
- lib/rspactor/listener.rb
|
63
91
|
- lib/rspactor/runner.rb
|
64
|
-
- lib/rspactor/
|
65
|
-
- lib/
|
66
|
-
- rspactor.
|
67
|
-
-
|
68
|
-
-
|
69
|
-
-
|
92
|
+
- lib/rspactor/ui.rb
|
93
|
+
- lib/rspactor/version.rb
|
94
|
+
- lib/rspactor.rb
|
95
|
+
- ext/fsevent/extconf.rb
|
96
|
+
- ext/fsevent/fsevent_watch.c
|
97
|
+
- LICENSE
|
98
|
+
- README.rdoc
|
70
99
|
has_rdoc: true
|
71
100
|
homepage: http://github.com/thibaudgg/rspactor
|
72
101
|
licenses: []
|
73
102
|
|
74
103
|
post_install_message:
|
75
|
-
rdoc_options:
|
76
|
-
|
104
|
+
rdoc_options: []
|
105
|
+
|
77
106
|
require_paths:
|
78
107
|
- lib
|
79
108
|
required_ruby_version: !ruby/object:Gem::Requirement
|
109
|
+
none: false
|
80
110
|
requirements:
|
81
111
|
- - ">="
|
82
112
|
- !ruby/object:Gem::Version
|
113
|
+
hash: 3
|
83
114
|
segments:
|
84
115
|
- 0
|
85
116
|
version: "0"
|
86
117
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
118
|
+
none: false
|
87
119
|
requirements:
|
88
120
|
- - ">="
|
89
121
|
- !ruby/object:Gem::Version
|
122
|
+
hash: 21
|
90
123
|
segments:
|
91
|
-
-
|
92
|
-
|
124
|
+
- 1
|
125
|
+
- 3
|
126
|
+
- 7
|
127
|
+
version: 1.3.7
|
93
128
|
requirements: []
|
94
129
|
|
95
130
|
rubyforge_project:
|
96
|
-
rubygems_version: 1.3.
|
131
|
+
rubygems_version: 1.3.7
|
97
132
|
signing_key:
|
98
133
|
specification_version: 3
|
99
|
-
summary:
|
100
|
-
test_files:
|
101
|
-
|
102
|
-
- spec/listener_spec.rb
|
103
|
-
- spec/runner_spec.rb
|
134
|
+
summary: Simpler Autotest
|
135
|
+
test_files: []
|
136
|
+
|
data/.gitignore
DELETED
data/.rspactor
DELETED
File without changes
|
data/Rakefile
DELETED
@@ -1,50 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'rake'
|
3
|
-
|
4
|
-
begin
|
5
|
-
require 'jeweler'
|
6
|
-
Jeweler::Tasks.new do |gem|
|
7
|
-
gem.name = "rspactor"
|
8
|
-
gem.summary = "RSpactor is a command line tool to automatically run your changed specs & cucumber features."
|
9
|
-
gem.description = "RSpactor is a command line tool to automatically run your changed specs & cucumber features (much like autotest)."
|
10
|
-
gem.email = "thibaud@thibaud.me"
|
11
|
-
gem.homepage = "http://github.com/thibaudgg/rspactor"
|
12
|
-
gem.authors = ["Mislav Marohnić", "Andreas Wolff", "Pelle Braendgaard", "Thibaud Guillaume-Gentil"]
|
13
|
-
gem.add_development_dependency "rspec", ">= 1.2.9"
|
14
|
-
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
15
|
-
end
|
16
|
-
Jeweler::GemcutterTasks.new
|
17
|
-
rescue LoadError
|
18
|
-
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
19
|
-
end
|
20
|
-
|
21
|
-
require 'spec/rake/spectask'
|
22
|
-
Spec::Rake::SpecTask.new(:spec) do |spec|
|
23
|
-
spec.libs << 'lib' << 'spec'
|
24
|
-
spec.spec_files = FileList['spec/**/*_spec.rb']
|
25
|
-
end
|
26
|
-
|
27
|
-
Spec::Rake::SpecTask.new(:rcov) do |spec|
|
28
|
-
spec.libs << 'lib' << 'spec'
|
29
|
-
spec.pattern = 'spec/**/*_spec.rb'
|
30
|
-
spec.rcov = true
|
31
|
-
end
|
32
|
-
|
33
|
-
desc "starts RSpactor"
|
34
|
-
task :rspactor do
|
35
|
-
system "ruby -Ilib bin/rspactor"
|
36
|
-
end
|
37
|
-
|
38
|
-
task :spec => :check_dependencies
|
39
|
-
|
40
|
-
task :default => :rspactor
|
41
|
-
|
42
|
-
require 'rake/rdoctask'
|
43
|
-
Rake::RDocTask.new do |rdoc|
|
44
|
-
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
45
|
-
|
46
|
-
rdoc.rdoc_dir = 'rdoc'
|
47
|
-
rdoc.title = "rspactor #{version}"
|
48
|
-
rdoc.rdoc_files.include('README*')
|
49
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
50
|
-
end
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.6.4
|
data/lib/cucumber_growler.rb
DELETED
@@ -1,61 +0,0 @@
|
|
1
|
-
require 'cucumber'
|
2
|
-
require 'cucumber/formatter/console'
|
3
|
-
require File.dirname(__FILE__) + '/rspactor/growl'
|
4
|
-
|
5
|
-
module CucumberGrowler
|
6
|
-
include RSpactor::Growl
|
7
|
-
|
8
|
-
def self.included(base)
|
9
|
-
base.class_eval do
|
10
|
-
alias original_print_stats print_stats
|
11
|
-
include InstanceMethods
|
12
|
-
|
13
|
-
def print_stats(features, profiles = [])
|
14
|
-
title, icon, messages = '', '', []
|
15
|
-
[:failed, :skipped, :undefined, :pending, :passed].reverse.each do |status|
|
16
|
-
if step_mother.steps(status).any?
|
17
|
-
icon = icon_for(status)
|
18
|
-
# title = title_for(status)
|
19
|
-
messages << dump_count(step_mother.steps(status).length, "step", status.to_s)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
notify "Cucumber Results", messages.reverse.join(", "), icon
|
24
|
-
original_print_stats(features, profiles = [])
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
module InstanceMethods
|
30
|
-
def icon_for(status)
|
31
|
-
case status
|
32
|
-
when :passed
|
33
|
-
'success'
|
34
|
-
when :pending, :undefined, :skipped
|
35
|
-
'pending'
|
36
|
-
when :failed
|
37
|
-
'failed'
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
def title_for(status)
|
42
|
-
case status
|
43
|
-
when :passed
|
44
|
-
'Features passed!'
|
45
|
-
when :pending
|
46
|
-
'Some steps are pending...'
|
47
|
-
when :undefined
|
48
|
-
'Some undefined steps...'
|
49
|
-
when :skipped
|
50
|
-
'Some steps skipped...'
|
51
|
-
when :failed
|
52
|
-
'Failures occurred!'
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
end
|
58
|
-
|
59
|
-
module Cucumber::Formatter::Console
|
60
|
-
include CucumberGrowler
|
61
|
-
end
|
data/lib/rspactor/growl.rb
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
module RSpactor
|
2
|
-
module Growl
|
3
|
-
extend self
|
4
|
-
|
5
|
-
def notify(title, msg, icon, pri = 0)
|
6
|
-
system("growlnotify -w -n rspactor --image #{image_path(icon)} -p #{pri} -m #{msg.inspect} #{title} &")
|
7
|
-
end
|
8
|
-
|
9
|
-
# failed | pending | success
|
10
|
-
def image_path(icon)
|
11
|
-
File.expand_path File.dirname(__FILE__) + "/../../images/#{icon}.png"
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|