gherkin 2.10.0-x86-mswin32 → 2.11.0-x86-mswin32
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/History.md +7 -0
- data/README.md +3 -4
- data/gherkin.gemspec +3 -3
- data/lib/1.8/gherkin_lexer_ar.so +0 -0
- data/lib/1.8/gherkin_lexer_bg.so +0 -0
- data/lib/1.8/gherkin_lexer_bm.so +0 -0
- data/lib/1.8/gherkin_lexer_ca.so +0 -0
- data/lib/1.8/gherkin_lexer_cs.so +0 -0
- data/lib/1.8/gherkin_lexer_cy_gb.so +0 -0
- data/lib/1.8/gherkin_lexer_da.so +0 -0
- data/lib/1.8/gherkin_lexer_de.so +0 -0
- data/lib/1.8/gherkin_lexer_en.so +0 -0
- data/lib/1.8/gherkin_lexer_en_au.so +0 -0
- data/lib/1.8/gherkin_lexer_en_lol.so +0 -0
- data/lib/1.8/gherkin_lexer_en_pirate.so +0 -0
- data/lib/1.8/gherkin_lexer_en_scouse.so +0 -0
- data/lib/1.8/gherkin_lexer_en_tx.so +0 -0
- data/lib/1.8/gherkin_lexer_eo.so +0 -0
- data/lib/1.8/gherkin_lexer_es.so +0 -0
- data/lib/1.8/gherkin_lexer_et.so +0 -0
- data/lib/1.8/gherkin_lexer_fi.so +0 -0
- data/lib/1.8/gherkin_lexer_fr.so +0 -0
- data/lib/1.8/gherkin_lexer_he.so +0 -0
- data/lib/1.8/gherkin_lexer_hr.so +0 -0
- data/lib/1.8/gherkin_lexer_hu.so +0 -0
- data/lib/1.8/gherkin_lexer_id.so +0 -0
- data/lib/1.8/gherkin_lexer_is.so +0 -0
- data/lib/1.8/gherkin_lexer_it.so +0 -0
- data/lib/1.8/gherkin_lexer_ja.so +0 -0
- data/lib/1.8/gherkin_lexer_ko.so +0 -0
- data/lib/1.8/gherkin_lexer_lt.so +0 -0
- data/lib/1.8/gherkin_lexer_lu.so +0 -0
- data/lib/1.8/gherkin_lexer_lv.so +0 -0
- data/lib/1.8/gherkin_lexer_nl.so +0 -0
- data/lib/1.8/gherkin_lexer_no.so +0 -0
- data/lib/1.8/gherkin_lexer_pl.so +0 -0
- data/lib/1.8/gherkin_lexer_pt.so +0 -0
- data/lib/1.8/gherkin_lexer_ro.so +0 -0
- data/lib/1.8/gherkin_lexer_ru.so +0 -0
- data/lib/1.8/gherkin_lexer_sk.so +0 -0
- data/lib/1.8/gherkin_lexer_sr_cyrl.so +0 -0
- data/lib/1.8/gherkin_lexer_sr_latn.so +0 -0
- data/lib/1.8/gherkin_lexer_sv.so +0 -0
- data/lib/1.8/gherkin_lexer_tr.so +0 -0
- data/lib/1.8/gherkin_lexer_uk.so +0 -0
- data/lib/1.8/gherkin_lexer_uz.so +0 -0
- data/lib/1.8/gherkin_lexer_vi.so +0 -0
- data/lib/1.8/gherkin_lexer_zh_cn.so +0 -0
- data/lib/1.8/gherkin_lexer_zh_tw.so +0 -0
- data/lib/1.9/gherkin_lexer_ar.so +0 -0
- data/lib/1.9/gherkin_lexer_bg.so +0 -0
- data/lib/1.9/gherkin_lexer_bm.so +0 -0
- data/lib/1.9/gherkin_lexer_ca.so +0 -0
- data/lib/1.9/gherkin_lexer_cs.so +0 -0
- data/lib/1.9/gherkin_lexer_cy_gb.so +0 -0
- data/lib/1.9/gherkin_lexer_da.so +0 -0
- data/lib/1.9/gherkin_lexer_de.so +0 -0
- data/lib/1.9/gherkin_lexer_en.so +0 -0
- data/lib/1.9/gherkin_lexer_en_au.so +0 -0
- data/lib/1.9/gherkin_lexer_en_lol.so +0 -0
- data/lib/1.9/gherkin_lexer_en_pirate.so +0 -0
- data/lib/1.9/gherkin_lexer_en_scouse.so +0 -0
- data/lib/1.9/gherkin_lexer_en_tx.so +0 -0
- data/lib/1.9/gherkin_lexer_eo.so +0 -0
- data/lib/1.9/gherkin_lexer_es.so +0 -0
- data/lib/1.9/gherkin_lexer_et.so +0 -0
- data/lib/1.9/gherkin_lexer_fi.so +0 -0
- data/lib/1.9/gherkin_lexer_fr.so +0 -0
- data/lib/1.9/gherkin_lexer_he.so +0 -0
- data/lib/1.9/gherkin_lexer_hr.so +0 -0
- data/lib/1.9/gherkin_lexer_hu.so +0 -0
- data/lib/1.9/gherkin_lexer_id.so +0 -0
- data/lib/1.9/gherkin_lexer_is.so +0 -0
- data/lib/1.9/gherkin_lexer_it.so +0 -0
- data/lib/1.9/gherkin_lexer_ja.so +0 -0
- data/lib/1.9/gherkin_lexer_ko.so +0 -0
- data/lib/1.9/gherkin_lexer_lt.so +0 -0
- data/lib/1.9/gherkin_lexer_lu.so +0 -0
- data/lib/1.9/gherkin_lexer_lv.so +0 -0
- data/lib/1.9/gherkin_lexer_nl.so +0 -0
- data/lib/1.9/gherkin_lexer_no.so +0 -0
- data/lib/1.9/gherkin_lexer_pl.so +0 -0
- data/lib/1.9/gherkin_lexer_pt.so +0 -0
- data/lib/1.9/gherkin_lexer_ro.so +0 -0
- data/lib/1.9/gherkin_lexer_ru.so +0 -0
- data/lib/1.9/gherkin_lexer_sk.so +0 -0
- data/lib/1.9/gherkin_lexer_sr_cyrl.so +0 -0
- data/lib/1.9/gherkin_lexer_sr_latn.so +0 -0
- data/lib/1.9/gherkin_lexer_sv.so +0 -0
- data/lib/1.9/gherkin_lexer_tr.so +0 -0
- data/lib/1.9/gherkin_lexer_uk.so +0 -0
- data/lib/1.9/gherkin_lexer_uz.so +0 -0
- data/lib/1.9/gherkin_lexer_vi.so +0 -0
- data/lib/1.9/gherkin_lexer_zh_cn.so +0 -0
- data/lib/1.9/gherkin_lexer_zh_tw.so +0 -0
- data/lib/gherkin/formatter/filter_formatter.rb +1 -1
- data/lib/gherkin/formatter/json_formatter.rb +26 -11
- data/lib/gherkin/i18n.yml +1 -1
- data/lib/gherkin/json_parser.rb +33 -0
- data/spec/gherkin/formatter/filter_formatter_spec.rb +8 -0
- data/spec/gherkin/formatter/json_formatter_spec.rb +15 -2
- data/spec/gherkin/json_parser_spec.rb +83 -45
- metadata +23 -7
data/History.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
## [2.11.0](https://github.com/cucumber/gherkin/compare/v2.10.0...v2.11.0)
|
2
|
+
|
3
|
+
* [Core] Alias Feature with Business Need and Ability. ([#167](https://github.com/cucumber/gherkin/issues/167) Aslak Hellesøy)
|
4
|
+
* [Java] Better exception on bad filter mix. ([#179](https://github.com/cucumber/gherkin/issues/179) Aslak Hellesøy)
|
5
|
+
* [Java, Ruby] Formatters don't deal well with things not associated with a step ([#172](https://github.com/cucumber/gherkin/issues/172) David Kowis, Aslak Hellesøy)
|
6
|
+
* [Java] Make model classes implement `java.io.Serializable` ([#180](https://github.com/cucumber/gherkin/issues/180) Aslak Hellesøy)
|
7
|
+
|
1
8
|
## [2.10.0](https://github.com/cucumber/gherkin/compare/v2.9.3...v2.10.0)
|
2
9
|
|
3
10
|
* [Core] Added Malay language support. ([#176](https://github.com/cucumber/gherkin/pull/176) Choon Siong)
|
data/README.md
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
[](http://travis-ci.org/cucumber/gherkin)
|
2
|
-
[](https://gemnasium.com/cucumber/gherkin)
|
3
2
|
|
4
3
|
A fast lexer and parser for the Gherkin language based on Ragel. Gherkin is two things:
|
5
4
|
|
@@ -55,7 +54,7 @@ The jar file is in the central Maven repo.
|
|
55
54
|
<dependency>
|
56
55
|
<groupId>info.cukes</groupId>
|
57
56
|
<artifactId>gherkin</artifactId>
|
58
|
-
<version>2.
|
57
|
+
<version>2.11.0</version>
|
59
58
|
</dependency>
|
60
59
|
|
61
60
|
You can get it manually from [Maven Central](http://search.maven.org/#browse%7C-2073395818)
|
@@ -203,7 +202,7 @@ Now we're ready to install the Windows rubies:
|
|
203
202
|
rvm gemset use cucumber
|
204
203
|
gem install bundler
|
205
204
|
bundle install
|
206
|
-
|
205
|
+
PATH=/usr/local/mingw/bin:$PATH CC=/usr/local/mingw/bin/i686-w64-mingw32-gcc rake-compiler cross-ruby VERSION=1.9.3-p194
|
207
206
|
|
208
207
|
# 1.8.7
|
209
208
|
CC=gcc-4.2 rvm install 1.8.7-p352
|
@@ -217,7 +216,7 @@ Now we're ready to install the Windows rubies:
|
|
217
216
|
Now you can build Windows gems:
|
218
217
|
|
219
218
|
rake compile
|
220
|
-
|
219
|
+
mkdir release
|
221
220
|
rake gems:win
|
222
221
|
|
223
222
|
## Release process
|
data/gherkin.gemspec
CHANGED
@@ -15,7 +15,7 @@ Gem::Specification.new do |s|
|
|
15
15
|
# When both are building OK, do a `bundle exec rake install` in both cucumber and gherkin projects, revert the changes in the first 2 steps
|
16
16
|
# and release both projects. Do this for both ruby 1.8.7, ruby 1.9.3 and jruby.
|
17
17
|
#
|
18
|
-
s.version = "2.
|
18
|
+
s.version = "2.11.0"
|
19
19
|
s.authors = ["Mike Sassak", "Gregory Hnatiuk", "Aslak Hellesøy"]
|
20
20
|
s.description = "A fast Gherkin lexer/parser based on the Ragel State Machine Compiler."
|
21
21
|
s.summary = "#{s.name}-#{s.version}"
|
@@ -58,10 +58,10 @@ Gem::Specification.new do |s|
|
|
58
58
|
|
59
59
|
s.add_runtime_dependency('json', '>= 1.4.6')
|
60
60
|
|
61
|
-
s.add_development_dependency('cucumber', '>= 1.2.
|
61
|
+
s.add_development_dependency('cucumber', '>= 1.2.1')
|
62
62
|
s.add_development_dependency('rake', '>= 0.9.2')
|
63
63
|
s.add_development_dependency('bundler', '>= 1.1.0')
|
64
|
-
s.add_development_dependency('rspec', '~> 2.
|
64
|
+
s.add_development_dependency('rspec', '~> 2.10.0')
|
65
65
|
s.add_development_dependency('rubyzip', '>= 0.9.8')
|
66
66
|
|
67
67
|
unless ENV['RUBY_CC_VERSION'] || defined?(JRUBY_VERSION)
|
data/lib/1.8/gherkin_lexer_ar.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_bg.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_bm.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_ca.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_cs.so
CHANGED
Binary file
|
Binary file
|
data/lib/1.8/gherkin_lexer_da.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_de.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_en.so
CHANGED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/lib/1.8/gherkin_lexer_eo.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_es.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_et.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_fi.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_fr.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_he.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_hr.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_hu.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_id.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_is.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_it.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_ja.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_ko.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_lt.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_lu.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_lv.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_nl.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_no.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_pl.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_pt.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_ro.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_ru.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_sk.so
CHANGED
Binary file
|
Binary file
|
Binary file
|
data/lib/1.8/gherkin_lexer_sv.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_tr.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_uk.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_uz.so
CHANGED
Binary file
|
data/lib/1.8/gherkin_lexer_vi.so
CHANGED
Binary file
|
Binary file
|
Binary file
|
data/lib/1.9/gherkin_lexer_ar.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_bg.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_bm.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_ca.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_cs.so
CHANGED
Binary file
|
Binary file
|
data/lib/1.9/gherkin_lexer_da.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_de.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_en.so
CHANGED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/lib/1.9/gherkin_lexer_eo.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_es.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_et.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_fi.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_fr.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_he.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_hr.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_hu.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_id.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_is.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_it.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_ja.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_ko.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_lt.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_lu.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_lv.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_nl.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_no.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_pl.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_pt.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_ro.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_ru.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_sk.so
CHANGED
Binary file
|
Binary file
|
Binary file
|
data/lib/1.9/gherkin_lexer_sv.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_tr.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_uk.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_uz.so
CHANGED
Binary file
|
data/lib/1.9/gherkin_lexer_vi.so
CHANGED
Binary file
|
Binary file
|
Binary file
|
@@ -96,7 +96,7 @@ module Gherkin
|
|
96
96
|
private
|
97
97
|
|
98
98
|
def detect_filter(filters)
|
99
|
-
raise "Inconsistent filters: #{filters.inspect}" if filters.map{|filter| filter.class}.uniq.length > 1
|
99
|
+
raise "Inconsistent filters: #{filters.inspect}. Only one type [line,name,tag] can be used at once." if filters.map{|filter| filter.class}.uniq.length > 1
|
100
100
|
case(filters[0])
|
101
101
|
when Fixnum
|
102
102
|
LineFilter.new(filters)
|
@@ -16,6 +16,7 @@ module Gherkin
|
|
16
16
|
raise "Must be writeable" unless io.respond_to?(:write)
|
17
17
|
@io = io
|
18
18
|
@feature_hashes = []
|
19
|
+
@current_step_or_hook = nil
|
19
20
|
end
|
20
21
|
|
21
22
|
def done
|
@@ -34,17 +35,14 @@ module Gherkin
|
|
34
35
|
|
35
36
|
def background(background)
|
36
37
|
feature_elements << background.to_hash
|
37
|
-
@step_index = 0
|
38
38
|
end
|
39
39
|
|
40
40
|
def scenario(scenario)
|
41
41
|
feature_elements << scenario.to_hash
|
42
|
-
@step_index = 0
|
43
42
|
end
|
44
43
|
|
45
44
|
def scenario_outline(scenario_outline)
|
46
45
|
feature_elements << scenario_outline.to_hash
|
47
|
-
@step_index = 0
|
48
46
|
end
|
49
47
|
|
50
48
|
def examples(examples)
|
@@ -52,31 +50,44 @@ module Gherkin
|
|
52
50
|
end
|
53
51
|
|
54
52
|
def step(step)
|
55
|
-
|
53
|
+
@current_step_or_hook = step.to_hash
|
54
|
+
steps << @current_step_or_hook
|
56
55
|
end
|
57
56
|
|
58
57
|
def match(match)
|
59
|
-
|
58
|
+
@current_step_or_hook['match'] = match.to_hash
|
60
59
|
end
|
61
60
|
|
62
61
|
def result(result)
|
63
|
-
|
64
|
-
@step_index += 1
|
62
|
+
@current_step_or_hook['result'] = result.to_hash
|
65
63
|
end
|
66
64
|
|
67
|
-
def
|
68
|
-
|
65
|
+
def before(match, result)
|
66
|
+
add_hook(match, result, "before")
|
67
|
+
end
|
68
|
+
|
69
|
+
def after(match, result)
|
70
|
+
add_hook(match, result, "after")
|
69
71
|
end
|
70
72
|
|
71
73
|
def embedding(mime_type, data)
|
72
74
|
embeddings << {'mime_type' => mime_type, 'data' => encode64s(data)}
|
73
75
|
end
|
74
76
|
|
77
|
+
def write(text)
|
78
|
+
output << text
|
79
|
+
end
|
80
|
+
|
75
81
|
def eof
|
76
82
|
end
|
77
83
|
|
78
84
|
private
|
79
85
|
|
86
|
+
def add_hook(match, result, hook)
|
87
|
+
hooks = (feature_element[hook] ||= []);
|
88
|
+
hooks << {'match' => match.to_hash, 'result' => result.to_hash}
|
89
|
+
end
|
90
|
+
|
80
91
|
def feature_elements
|
81
92
|
@feature_hash['elements'] ||= []
|
82
93
|
end
|
@@ -89,12 +100,16 @@ module Gherkin
|
|
89
100
|
feature_element['examples'] ||= []
|
90
101
|
end
|
91
102
|
|
92
|
-
def
|
103
|
+
def steps
|
93
104
|
feature_element['steps'] ||= []
|
94
105
|
end
|
95
106
|
|
96
107
|
def embeddings
|
97
|
-
|
108
|
+
@current_step_or_hook['embeddings'] ||= []
|
109
|
+
end
|
110
|
+
|
111
|
+
def output
|
112
|
+
@current_step_or_hook['output'] ||= []
|
98
113
|
end
|
99
114
|
|
100
115
|
def encode64s(data)
|
data/lib/gherkin/i18n.yml
CHANGED
data/lib/gherkin/json_parser.rb
CHANGED
@@ -24,12 +24,23 @@ module Gherkin
|
|
24
24
|
Formatter::Model::Feature.new(comments(f), tags(f), keyword(f), name(f), description(f), line(f), id(f)).replay(@formatter)
|
25
25
|
(f["elements"] || []).each do |feature_element|
|
26
26
|
feature_element(feature_element).replay(@formatter)
|
27
|
+
|
28
|
+
(feature_element["before"] || []).each do |hook|
|
29
|
+
before(hook)
|
30
|
+
end
|
31
|
+
|
27
32
|
(feature_element["steps"] || []).each do |step|
|
28
33
|
step(step).replay(@formatter)
|
29
34
|
match(step)
|
30
35
|
result(step)
|
31
36
|
embeddings(step)
|
37
|
+
output(step)
|
32
38
|
end
|
39
|
+
|
40
|
+
(feature_element["after"] || []).each do |hook|
|
41
|
+
after(hook)
|
42
|
+
end
|
43
|
+
|
33
44
|
(feature_element["examples"] || []).each do |eo|
|
34
45
|
Formatter::Model::Examples.new(comments(eo), tags(eo), keyword(eo), name(eo), description(eo), line(eo), id(eo), examples_rows(eo['rows'])).replay(@formatter)
|
35
46
|
end
|
@@ -79,12 +90,34 @@ module Gherkin
|
|
79
90
|
end
|
80
91
|
end
|
81
92
|
|
93
|
+
def before(o)
|
94
|
+
m = o['match']
|
95
|
+
match = Formatter::Model::Match.new([], location(m))
|
96
|
+
r = o['result']
|
97
|
+
result = Formatter::Model::Result.new(status(r), duration(r), error_message(r))
|
98
|
+
@reporter.before(match, result)
|
99
|
+
end
|
100
|
+
|
101
|
+
def after(o)
|
102
|
+
m = o['match']
|
103
|
+
match = Formatter::Model::Match.new([], location(m))
|
104
|
+
r = o['result']
|
105
|
+
result = Formatter::Model::Result.new(status(r), duration(r), error_message(r))
|
106
|
+
@reporter.after(match, result)
|
107
|
+
end
|
108
|
+
|
82
109
|
def embeddings(o)
|
83
110
|
(o['embeddings'] || []).each do |embedding|
|
84
111
|
@reporter.embedding(embedding['mime_type'], Base64::decode64(embedding['data']))
|
85
112
|
end
|
86
113
|
end
|
87
114
|
|
115
|
+
def output(o)
|
116
|
+
(o['output'] || []).each do |text|
|
117
|
+
@reporter.write(text)
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
88
121
|
def examples_rows(o)
|
89
122
|
o.map{|row| Formatter::Model::ExamplesTableRow.new(comments(row), row['cells'], row['line'], row['id'])}
|
90
123
|
end
|
@@ -31,6 +31,14 @@ module Gherkin
|
|
31
31
|
io.string.strip.should == expected.strip
|
32
32
|
end
|
33
33
|
|
34
|
+
context "invalid mix" do
|
35
|
+
it "should throw exception on different filters" do
|
36
|
+
lambda do
|
37
|
+
verify_filter(['@tag1', /regexp/, 88], 1..61)
|
38
|
+
end.should raise_exception(/Inconsistent filters/)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
34
42
|
context "tags" do
|
35
43
|
it "should filter on feature tag" do
|
36
44
|
verify_filter(['@tag1'], 1..61)
|
@@ -12,15 +12,17 @@ module Gherkin
|
|
12
12
|
f.uri("f.feature")
|
13
13
|
f.feature(Model::Feature.new([], [], "Feature", "ff", "", 1, "ff"))
|
14
14
|
f.scenario(Model::Scenario.new([], [], "Scenario", "ss", "", 2, "ff/ss"))
|
15
|
-
f.step(Model::Step.new([], "Given ", "g", 3, nil, nil))
|
16
|
-
f.step(Model::Step.new([], "When ", "w", 4, nil, nil))
|
17
15
|
|
16
|
+
f.step(Model::Step.new([], "Given ", "g", 3, nil, nil))
|
18
17
|
f.match(Model::Match.new([], "def.rb:33"))
|
19
18
|
f.result(Model::Result.new(:passed, 1, nil))
|
20
19
|
|
20
|
+
f.step(Model::Step.new([], "When ", "w", 4, nil, nil))
|
21
21
|
f.match(Model::Match.new([], "def.rb:44"))
|
22
22
|
f.result(Model::Result.new(:passed, 1, nil))
|
23
23
|
|
24
|
+
f.after(Model::Match.new([], "def.rb:55"), Model::Result.new(:passed, 22, nil))
|
25
|
+
|
24
26
|
f.eof
|
25
27
|
f.done
|
26
28
|
|
@@ -66,6 +68,17 @@ module Gherkin
|
|
66
68
|
"duration": 1
|
67
69
|
}
|
68
70
|
}
|
71
|
+
],
|
72
|
+
"after": [
|
73
|
+
{
|
74
|
+
"match":{
|
75
|
+
"location":"def.rb:55"
|
76
|
+
},
|
77
|
+
"result":{
|
78
|
+
"status":"passed",
|
79
|
+
"duration": 22
|
80
|
+
}
|
81
|
+
}
|
69
82
|
]
|
70
83
|
}
|
71
84
|
]
|
@@ -79,55 +79,93 @@ module Gherkin
|
|
79
79
|
|
80
80
|
it "should parse feature with match, result and embedding" do
|
81
81
|
check_json(%{
|
82
|
-
|
83
|
-
{
|
84
|
-
"id": "one",
|
85
|
-
"uri": "test.feature",
|
86
|
-
"tags": [
|
82
|
+
[
|
87
83
|
{
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
{
|
102
|
-
"keyword": "Given ",
|
103
|
-
"name": "a passing step",
|
104
|
-
"line": 6,
|
105
|
-
"match": {
|
106
|
-
"arguments": [
|
107
|
-
{
|
108
|
-
"offset": 22,
|
109
|
-
"val": "cukes"
|
110
|
-
}
|
111
|
-
],
|
112
|
-
"location": "features/step_definitions/steps.rb:1"
|
113
|
-
},
|
114
|
-
"result": {
|
115
|
-
"status": "failed",
|
116
|
-
"error_message": "You suck",
|
117
|
-
"duration": -1
|
118
|
-
},
|
119
|
-
"embeddings": [
|
84
|
+
"id":"one",
|
85
|
+
"uri":"test.feature",
|
86
|
+
"tags":[
|
87
|
+
{
|
88
|
+
"name":"@foo",
|
89
|
+
"line":22
|
90
|
+
}
|
91
|
+
],
|
92
|
+
"keyword":"Feature",
|
93
|
+
"name":"One",
|
94
|
+
"description":"",
|
95
|
+
"line":3,
|
96
|
+
"elements":[
|
120
97
|
{
|
121
|
-
|
122
|
-
|
98
|
+
"id":"one/a-scenario",
|
99
|
+
"type":"scenario",
|
100
|
+
"before": [
|
101
|
+
{
|
102
|
+
"match":{
|
103
|
+
"location":"features/step_definitions/hooks.rb:1"
|
104
|
+
},
|
105
|
+
"result":{
|
106
|
+
"status":"passed",
|
107
|
+
"error_message":"Passed hook",
|
108
|
+
"duration": 3
|
109
|
+
}
|
110
|
+
},
|
111
|
+
{
|
112
|
+
"match":{
|
113
|
+
"location":"features/step_definitions/hooks.rb:2"
|
114
|
+
},
|
115
|
+
"result":{
|
116
|
+
"status":"failed",
|
117
|
+
"error_message":"Failed hook",
|
118
|
+
"duration": 22
|
119
|
+
}
|
120
|
+
}
|
121
|
+
],
|
122
|
+
"steps":[
|
123
|
+
{
|
124
|
+
"keyword":"Given ",
|
125
|
+
"name":"a passing step",
|
126
|
+
"line":6,
|
127
|
+
"match":{
|
128
|
+
"arguments":[
|
129
|
+
{
|
130
|
+
"offset":22,
|
131
|
+
"val":"cukes"
|
132
|
+
}
|
133
|
+
],
|
134
|
+
"location":"features/step_definitions/steps.rb:1"
|
135
|
+
},
|
136
|
+
"result":{
|
137
|
+
"status":"failed",
|
138
|
+
"error_message":"You suck",
|
139
|
+
"duration":-1
|
140
|
+
},
|
141
|
+
"embeddings":[
|
142
|
+
{
|
143
|
+
"mime_type":"text/plain",
|
144
|
+
"data":"Tm8sIEknbSBub3QgaW50ZXJlc3RlZCBpbiBkZXZlbG9waW5nIGEgcG93ZXJmdWwgYnJhaW4uIEFsbCBJJ20gYWZ0ZXIgaXMganVzdCBhIG1lZGlvY3JlIGJyYWluLCBzb21ldGhpbmcgbGlrZSB0aGUgUHJlc2lkZW50IG9mIHRoZSBBbWVyaWNhbiBUZWxlcGhvbmUgYW5kIFRlbGVncmFwaCBDb21wYW55Lg=="
|
145
|
+
}
|
146
|
+
],
|
147
|
+
"output":[
|
148
|
+
"Hello",
|
149
|
+
"World"
|
150
|
+
]
|
151
|
+
}
|
152
|
+
],
|
153
|
+
"after": [
|
154
|
+
{
|
155
|
+
"match":{
|
156
|
+
"location":"features/step_definitions/hooks.rb:3"
|
157
|
+
},
|
158
|
+
"result":{
|
159
|
+
"status":"failed",
|
160
|
+
"error_message":"Failed After",
|
161
|
+
"duration": 22
|
162
|
+
}
|
163
|
+
}
|
164
|
+
]
|
123
165
|
}
|
124
|
-
|
125
|
-
}
|
126
|
-
]
|
166
|
+
]
|
127
167
|
}
|
128
|
-
|
129
|
-
}
|
130
|
-
]
|
168
|
+
]
|
131
169
|
})
|
132
170
|
end
|
133
171
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gherkin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.11.0
|
5
5
|
prerelease:
|
6
6
|
platform: x86-mswin32
|
7
7
|
authors:
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2012-
|
14
|
+
date: 2012-06-08 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: json
|
@@ -36,7 +36,7 @@ dependencies:
|
|
36
36
|
requirements:
|
37
37
|
- - ! '>='
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: 1.2.
|
39
|
+
version: 1.2.1
|
40
40
|
type: :development
|
41
41
|
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -44,7 +44,7 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - ! '>='
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 1.2.
|
47
|
+
version: 1.2.1
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: rake
|
50
50
|
requirement: !ruby/object:Gem::Requirement
|
@@ -84,7 +84,7 @@ dependencies:
|
|
84
84
|
requirements:
|
85
85
|
- - ~>
|
86
86
|
- !ruby/object:Gem::Version
|
87
|
-
version: 2.
|
87
|
+
version: 2.10.0
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
90
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -92,7 +92,7 @@ dependencies:
|
|
92
92
|
requirements:
|
93
93
|
- - ~>
|
94
94
|
- !ruby/object:Gem::Version
|
95
|
-
version: 2.
|
95
|
+
version: 2.10.0
|
96
96
|
- !ruby/object:Gem::Dependency
|
97
97
|
name: rubyzip
|
98
98
|
requirement: !ruby/object:Gem::Requirement
|
@@ -109,6 +109,22 @@ dependencies:
|
|
109
109
|
- - ! '>='
|
110
110
|
- !ruby/object:Gem::Version
|
111
111
|
version: 0.9.8
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: therubyracer
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
none: false
|
116
|
+
requirements:
|
117
|
+
- - ! '>='
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: 0.10.1
|
120
|
+
type: :development
|
121
|
+
prerelease: false
|
122
|
+
version_requirements: !ruby/object:Gem::Requirement
|
123
|
+
none: false
|
124
|
+
requirements:
|
125
|
+
- - ! '>='
|
126
|
+
- !ruby/object:Gem::Version
|
127
|
+
version: 0.10.1
|
112
128
|
- !ruby/object:Gem::Dependency
|
113
129
|
name: yard
|
114
130
|
requirement: !ruby/object:Gem::Requirement
|
@@ -435,7 +451,7 @@ rubyforge_project:
|
|
435
451
|
rubygems_version: 1.8.24
|
436
452
|
signing_key:
|
437
453
|
specification_version: 3
|
438
|
-
summary: gherkin-2.
|
454
|
+
summary: gherkin-2.11.0
|
439
455
|
test_files:
|
440
456
|
- features/escaped_pipes.feature
|
441
457
|
- features/feature_parser.feature
|