cucumber 0.7.1 → 0.7.2
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/.gitignore +0 -2
- data/History.txt +6 -1
- data/VERSION.yml +1 -1
- data/cucumber.gemspec +3 -3
- data/features/custom_formatter.feature +17 -4
- data/lib/cucumber/ast/tree_walker.rb +36 -15
- metadata +4 -4
data/.gitignore
CHANGED
data/History.txt
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
== 0.7.2 (2010-05-03)
|
2
|
+
|
3
|
+
=== Bugfixes
|
4
|
+
* REALLY add backwards compatibility fix (with deprecation warning) for legacy 0.6.4 formatters. (Aslak Hellesøy)
|
5
|
+
|
1
6
|
== 0.7.1 (2010-05-03)
|
2
7
|
|
3
8
|
=== Bugfixes
|
@@ -60,7 +65,7 @@ Treetop is gone and replaced with Ragel. The new Ragel parser lives in the gherk
|
|
60
65
|
Parse times are up to 100 times faster.
|
61
66
|
|
62
67
|
=== New Features
|
63
|
-
* Upgraded Sinatra example to use
|
68
|
+
* Upgraded Sinatra example to use Sinatra 1.0 and Capybara. (Aslak Hellesøy)
|
64
69
|
|
65
70
|
=== Changed Features
|
66
71
|
* New i18n translations now have to be contributed to the gherkin project.
|
data/VERSION.yml
CHANGED
data/cucumber.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{cucumber}
|
8
|
-
s.version = "0.7.
|
8
|
+
s.version = "0.7.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Aslak Helles\303\270y"]
|
12
|
-
s.date = %q{2010-05-
|
12
|
+
s.date = %q{2010-05-04}
|
13
13
|
s.default_executable = %q{cucumber}
|
14
14
|
s.description = %q{Behaviour Driven Development with elegance and joy}
|
15
15
|
s.email = %q{cukes@googlegroups.com}
|
@@ -541,7 +541,7 @@ Gem::Specification.new do |s|
|
|
541
541
|
|
542
542
|
(::) U P G R A D I N G (::)
|
543
543
|
|
544
|
-
Thank you for installing cucumber-0.7.
|
544
|
+
Thank you for installing cucumber-0.7.2.
|
545
545
|
Please be sure to read http://wiki.github.com/aslakhellesoy/cucumber/upgrading
|
546
546
|
for important information about this release. Happy cuking!
|
547
547
|
|
@@ -51,8 +51,12 @@ Feature: Custom Formatter
|
|
51
51
|
And a file named "features/f.feature" with:
|
52
52
|
"""
|
53
53
|
Feature: We like old cukes
|
54
|
-
Scenario: just print me
|
54
|
+
Scenario Outline: just print me
|
55
55
|
Given this step works
|
56
|
+
|
57
|
+
Examples: print me too
|
58
|
+
|foo|
|
59
|
+
|bar|
|
56
60
|
"""
|
57
61
|
And a file named "features/step_definitions/steps.rb" with:
|
58
62
|
"""
|
@@ -74,19 +78,28 @@ Feature: Custom Formatter
|
|
74
78
|
def scenario_name(keyword, name, file_colon_line, source_indent)
|
75
79
|
@io.puts "#{keyword} #{name}"
|
76
80
|
end
|
81
|
+
|
82
|
+
def examples_name(keyword, name)
|
83
|
+
@io.puts "#{keyword} #{name}"
|
84
|
+
end
|
77
85
|
end
|
78
86
|
end
|
79
87
|
"""
|
80
88
|
When I run cucumber features/f.feature --format Legacy::Formator
|
81
89
|
Then STDERR should be
|
82
90
|
"""
|
83
|
-
Legacy::Formator is using a deprecated formatter API.
|
84
|
-
|
91
|
+
Legacy::Formator is using a deprecated formatter API. Starting with Cucumber 0.7.0 the signatures
|
92
|
+
that have changed are:
|
93
|
+
feature_name(keyword, name) # Two arguments. The keyword argument will not contain a colon.
|
94
|
+
scenario_name(keyword, name, file_colon_line, source_indent) # The keyword argument will not contain a colon.
|
95
|
+
examples_name(keyword, name) # The keyword argument will not contain a colon.
|
96
|
+
|
85
97
|
|
86
98
|
"""
|
87
99
|
Then it should pass with
|
88
100
|
"""
|
89
101
|
Feature: We like old cukes
|
90
|
-
Scenario: just print me
|
102
|
+
Scenario Outline: just print me
|
103
|
+
Examples: print me too
|
91
104
|
|
92
105
|
"""
|
@@ -171,27 +171,48 @@ module Cucumber
|
|
171
171
|
def send_to_all(message, *args)
|
172
172
|
@listeners.each do |listener|
|
173
173
|
if listener.respond_to?(message)
|
174
|
-
if
|
175
|
-
(listener
|
176
|
-
listener
|
177
|
-
# Legacy
|
178
|
-
case message.to_sym
|
179
|
-
when :feature_name
|
180
|
-
warn("#{listener.class} is using a deprecated formatter API. The signature has changed to :feature_name(keyword, name) # no trailing : in keyword")
|
181
|
-
listener.feature_name("#{args[0]}: #{args[1]}")
|
182
|
-
when :scenario_name, :examples_name
|
183
|
-
warn("#{listener.class} is using a deprecated formatter API. The :scenario_name method does not receive trailing : in keyword")
|
184
|
-
listener.__send__(message, "#{args[0]}:", args[1], args[2], args[3])
|
185
|
-
else
|
186
|
-
listener.__send__(message, *args)
|
187
|
-
end
|
174
|
+
if legacy_listener?(listener)
|
175
|
+
warn_legacy(listener)
|
176
|
+
legacy_invoke(listener, message, *args)
|
188
177
|
else
|
189
178
|
listener.__send__(message, *args)
|
190
179
|
end
|
191
180
|
end
|
192
181
|
end
|
193
182
|
end
|
194
|
-
|
183
|
+
|
184
|
+
def legacy_listener?(listener)
|
185
|
+
listener.respond_to?(:feature_name) &&
|
186
|
+
(listener.method(:feature_name) rescue false) &&
|
187
|
+
listener.method(:feature_name).arity == 1
|
188
|
+
end
|
189
|
+
|
190
|
+
def warn_legacy(listener)
|
191
|
+
@warned_listeners ||= []
|
192
|
+
unless @warned_listeners.index(listener)
|
193
|
+
warn("#{listener.class} is using a deprecated formatter API. Starting with Cucumber 0.7.0 the signatures\n" +
|
194
|
+
"that have changed are:\n" +
|
195
|
+
" feature_name(keyword, name) # Two arguments. The keyword argument will not contain a colon.\n" +
|
196
|
+
" scenario_name(keyword, name, file_colon_line, source_indent) # The keyword argument will not contain a colon.\n" +
|
197
|
+
" examples_name(keyword, name) # The keyword argument will not contain a colon.\n"
|
198
|
+
)
|
199
|
+
end
|
200
|
+
@warned_listeners << listener
|
201
|
+
end
|
202
|
+
|
203
|
+
def legacy_invoke(listener, message, *args)
|
204
|
+
case message.to_sym
|
205
|
+
when :feature_name
|
206
|
+
listener.feature_name("#{args[0]}: #{args[1]}")
|
207
|
+
when :scenario_name, :examples_name
|
208
|
+
args_with_colon = args.dup
|
209
|
+
args_with_colon[0] += ':'
|
210
|
+
listener.__send__(message, *args_with_colon)
|
211
|
+
else
|
212
|
+
listener.__send__(message, *args)
|
213
|
+
end
|
214
|
+
end
|
215
|
+
|
195
216
|
def extract_method_name_from(call_stack)
|
196
217
|
call_stack[0].match(/in `(.*)'/).captures[0]
|
197
218
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 7
|
8
|
-
-
|
9
|
-
version: 0.7.
|
8
|
+
- 2
|
9
|
+
version: 0.7.2
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- "Aslak Helles\xC3\xB8y"
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-05-
|
17
|
+
date: 2010-05-04 00:00:00 +02:00
|
18
18
|
default_executable: cucumber
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -720,7 +720,7 @@ post_install_message: |+
|
|
720
720
|
|
721
721
|
(::) U P G R A D I N G (::)
|
722
722
|
|
723
|
-
Thank you for installing cucumber-0.7.
|
723
|
+
Thank you for installing cucumber-0.7.2.
|
724
724
|
Please be sure to read http://wiki.github.com/aslakhellesoy/cucumber/upgrading
|
725
725
|
for important information about this release. Happy cuking!
|
726
726
|
|