gherkin 1.0.30 → 2.0.0
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.txt +19 -0
- data/Rakefile +4 -4
- data/VERSION.yml +2 -2
- data/features/feature_parser.feature +11 -0
- data/features/json_formatter.feature +238 -0
- data/features/pretty_formatter.feature +9 -0
- data/features/step_definitions/gherkin_steps.rb +1 -1
- data/features/step_definitions/json_formatter_steps.rb +32 -0
- data/features/step_definitions/pretty_formatter_steps.rb +24 -23
- data/features/support/env.rb +3 -3
- data/lib/gherkin/formatter/json_formatter.rb +82 -0
- data/lib/gherkin/formatter/pretty_formatter.rb +73 -78
- data/lib/gherkin/i18n.rb +22 -18
- data/lib/gherkin/i18n.yml +9 -9
- data/lib/gherkin/i18n_lexer.rb +2 -2
- data/lib/gherkin/parser/event.rb +6 -6
- data/lib/gherkin/parser/filter_listener.rb +5 -1
- data/lib/gherkin/parser/formatter_listener.rb +113 -0
- data/lib/gherkin/parser/json_parser.rb +102 -0
- data/lib/gherkin/parser/parser.rb +10 -2
- data/lib/gherkin/parser/row.rb +15 -0
- data/lib/gherkin/rubify.rb +2 -0
- data/lib/gherkin/tools/files.rb +1 -1
- data/lib/gherkin/tools/reformat.rb +1 -2
- data/lib/gherkin/tools/stats.rb +1 -1
- data/lib/gherkin/tools/stats_listener.rb +5 -5
- data/ragel/lexer.c.rl.erb +41 -12
- data/ragel/lexer.java.rl.erb +26 -17
- data/ragel/lexer.rb.rl.erb +10 -5
- data/ragel/lexer_common.rl.erb +6 -6
- data/spec/gherkin/c_lexer_spec.rb +2 -2
- data/spec/gherkin/fixtures/complex.js +105 -0
- data/spec/gherkin/formatter/argument_spec.rb +3 -3
- data/spec/gherkin/formatter/colors_spec.rb +3 -4
- data/spec/gherkin/formatter/pretty_formatter_spec.rb +21 -50
- data/spec/gherkin/i18n_lexer_spec.rb +6 -6
- data/spec/gherkin/i18n_spec.rb +16 -9
- data/spec/gherkin/java_lexer_spec.rb +1 -2
- data/spec/gherkin/output_stream_string_io.rb +24 -0
- data/spec/gherkin/parser/filter_listener_spec.rb +16 -9
- data/spec/gherkin/parser/formatter_listener_spec.rb +134 -0
- data/spec/gherkin/parser/json_parser_spec.rb +129 -0
- data/spec/gherkin/parser/parser_spec.rb +9 -9
- data/spec/gherkin/parser/tag_expression_spec.rb +8 -8
- data/spec/gherkin/rb_lexer_spec.rb +1 -1
- data/spec/gherkin/sexp_recorder.rb +21 -1
- data/spec/gherkin/shared/{lexer_spec.rb → lexer_group.rb} +172 -102
- data/spec/gherkin/shared/{py_string_spec.rb → py_string_group.rb} +21 -17
- data/spec/gherkin/shared/{row_spec.rb → row_group.rb} +36 -19
- data/spec/gherkin/shared/{tags_spec.rb → tags_group.rb} +13 -9
- data/spec/spec_helper.rb +18 -38
- data/tasks/bench.rake +3 -3
- data/tasks/compile.rake +13 -14
- data/tasks/rspec.rake +6 -11
- metadata +42 -28
- data/features/pretty_printer.feature +0 -14
- data/spec/gherkin/csharp_lexer_spec.rb +0 -20
data/tasks/compile.rake
CHANGED
@@ -8,6 +8,7 @@ CLEAN.include [
|
|
8
8
|
'java/target',
|
9
9
|
'ragel/i18n/*.rl',
|
10
10
|
'lib/gherkin/rb_lexer/*.rb',
|
11
|
+
'lib/*.dll',
|
11
12
|
'ext/**/*.c',
|
12
13
|
'java/src/main/java/gherkin/lexer/*.java',
|
13
14
|
'java/src/main/resources/gherkin/*.properties',
|
@@ -27,22 +28,20 @@ langs.each do |i18n|
|
|
27
28
|
java = RagelTask.new('java', i18n)
|
28
29
|
rb = RagelTask.new('rb', i18n)
|
29
30
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
io.puts("# Generated file. Do not edit.")
|
38
|
-
Gherkin::I18n::KEYWORD_KEYS.each do |key|
|
39
|
-
value = Gherkin::I18n.unicode_escape(i18n.keywords(key).join("|"))
|
40
|
-
io.puts("#{key}:#{value}")
|
41
|
-
end
|
31
|
+
java_properties = "java/src/main/resources/gherkin/I18nKeywords_#{i18n.iso_code.gsub(/-/, '_')}.properties"
|
32
|
+
file java_properties => 'lib/gherkin/i18n.yml' do
|
33
|
+
File.open(java_properties, 'wb') do |io|
|
34
|
+
io.puts("# Generated file. Do not edit.")
|
35
|
+
Gherkin::I18n::KEYWORD_KEYS.each do |key|
|
36
|
+
value = Gherkin::I18n.unicode_escape(i18n.keywords(key).join("|"))
|
37
|
+
io.puts("#{key}:#{value}")
|
42
38
|
end
|
43
39
|
end
|
44
|
-
|
45
|
-
|
40
|
+
end
|
41
|
+
file 'lib/gherkin.jar' => [java.target, rb.target, java_properties]
|
42
|
+
|
43
|
+
begin
|
44
|
+
if !defined?(JRUBY_VERSION)
|
46
45
|
require 'rake/extensiontask'
|
47
46
|
|
48
47
|
c = RagelTask.new('c', i18n)
|
data/tasks/rspec.rake
CHANGED
@@ -1,15 +1,10 @@
|
|
1
|
-
require '
|
1
|
+
require 'rspec/core/rake_task'
|
2
2
|
|
3
|
-
|
4
|
-
spec.libs << 'lib' << 'spec'
|
5
|
-
spec.spec_opts << '--color --diff'
|
6
|
-
end
|
3
|
+
RSpec::Core::RakeTask.new(:spec)
|
7
4
|
task :spec => [:check_dependencies]
|
8
5
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
spec.rcov = true
|
14
|
-
spec.rcov_opts = %w{--exclude spec\/}
|
6
|
+
RSpec::Core::RakeTask.new(:rcov) do |t|
|
7
|
+
t.pattern = 'spec/**/*_spec.rb'
|
8
|
+
t.rcov = true
|
9
|
+
t.rcov_opts = %w{--exclude osx\/objc,gems\/,spec\/}
|
15
10
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gherkin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 15
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
|
-
-
|
7
|
+
- 2
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version:
|
9
|
+
- 0
|
10
|
+
version: 2.0.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Mike Sassak
|
@@ -17,7 +17,7 @@ autorequire:
|
|
17
17
|
bindir: bin
|
18
18
|
cert_chain: []
|
19
19
|
|
20
|
-
date: 2010-
|
20
|
+
date: 2010-06-15 00:00:00 +02:00
|
21
21
|
default_executable: gherkin
|
22
22
|
dependencies:
|
23
23
|
- !ruby/object:Gem::Dependency
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirement: &id001 !ruby/object:Gem::Requirement
|
27
27
|
none: false
|
28
28
|
requirements:
|
29
|
-
- -
|
29
|
+
- - ~>
|
30
30
|
- !ruby/object:Gem::Version
|
31
31
|
hash: 83
|
32
32
|
segments:
|
@@ -42,14 +42,16 @@ dependencies:
|
|
42
42
|
requirement: &id002 !ruby/object:Gem::Requirement
|
43
43
|
none: false
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
hash:
|
47
|
+
hash: 62196469
|
48
48
|
segments:
|
49
|
-
-
|
50
|
-
-
|
49
|
+
- 2
|
50
|
+
- 0
|
51
51
|
- 0
|
52
|
-
|
52
|
+
- beta
|
53
|
+
- 11
|
54
|
+
version: 2.0.0.beta.11
|
53
55
|
type: :development
|
54
56
|
version_requirements: *id002
|
55
57
|
- !ruby/object:Gem::Dependency
|
@@ -58,14 +60,14 @@ dependencies:
|
|
58
60
|
requirement: &id003 !ruby/object:Gem::Requirement
|
59
61
|
none: false
|
60
62
|
requirements:
|
61
|
-
- -
|
63
|
+
- - ~>
|
62
64
|
- !ruby/object:Gem::Version
|
63
|
-
hash:
|
65
|
+
hash: 61
|
64
66
|
segments:
|
65
67
|
- 0
|
66
|
-
-
|
67
|
-
-
|
68
|
-
version: 0.
|
68
|
+
- 8
|
69
|
+
- 1
|
70
|
+
version: 0.8.1
|
69
71
|
type: :development
|
70
72
|
version_requirements: *id003
|
71
73
|
- !ruby/object:Gem::Dependency
|
@@ -74,7 +76,7 @@ dependencies:
|
|
74
76
|
requirement: &id004 !ruby/object:Gem::Requirement
|
75
77
|
none: false
|
76
78
|
requirements:
|
77
|
-
- -
|
79
|
+
- - ~>
|
78
80
|
- !ruby/object:Gem::Version
|
79
81
|
hash: 3
|
80
82
|
segments:
|
@@ -140,6 +142,7 @@ files:
|
|
140
142
|
- .gitattributes
|
141
143
|
- .gitignore
|
142
144
|
- .mailmap
|
145
|
+
- .rspec
|
143
146
|
- History.txt
|
144
147
|
- LICENSE
|
145
148
|
- README.rdoc
|
@@ -193,11 +196,13 @@ files:
|
|
193
196
|
- ext/gherkin_lexer_zh_tw/gherkin_lexer_zh_tw.c
|
194
197
|
- features/escaped_pipes.feature
|
195
198
|
- features/feature_parser.feature
|
199
|
+
- features/json_formatter.feature
|
196
200
|
- features/native_lexer.feature
|
197
201
|
- features/parser_with_native_lexer.feature
|
198
|
-
- features/
|
202
|
+
- features/pretty_formatter.feature
|
199
203
|
- features/step_definitions/eyeball_steps.rb
|
200
204
|
- features/step_definitions/gherkin_steps.rb
|
205
|
+
- features/step_definitions/json_formatter_steps.rb
|
201
206
|
- features/step_definitions/pretty_formatter_steps.rb
|
202
207
|
- features/steps_parser.feature
|
203
208
|
- features/support/env.rb
|
@@ -212,6 +217,7 @@ files:
|
|
212
217
|
- lib/gherkin/formatter/argument.rb
|
213
218
|
- lib/gherkin/formatter/colors.rb
|
214
219
|
- lib/gherkin/formatter/escaping.rb
|
220
|
+
- lib/gherkin/formatter/json_formatter.rb
|
215
221
|
- lib/gherkin/formatter/monochrome_format.rb
|
216
222
|
- lib/gherkin/formatter/pretty_formatter.rb
|
217
223
|
- lib/gherkin/i18n.rb
|
@@ -223,9 +229,12 @@ files:
|
|
223
229
|
- lib/gherkin/native/null.rb
|
224
230
|
- lib/gherkin/parser/event.rb
|
225
231
|
- lib/gherkin/parser/filter_listener.rb
|
232
|
+
- lib/gherkin/parser/formatter_listener.rb
|
233
|
+
- lib/gherkin/parser/json_parser.rb
|
226
234
|
- lib/gherkin/parser/meta.txt
|
227
235
|
- lib/gherkin/parser/parser.rb
|
228
236
|
- lib/gherkin/parser/root.txt
|
237
|
+
- lib/gherkin/parser/row.rb
|
229
238
|
- lib/gherkin/parser/steps.txt
|
230
239
|
- lib/gherkin/parser/tag_expression.rb
|
231
240
|
- lib/gherkin/rb_lexer.rb
|
@@ -287,10 +296,10 @@ files:
|
|
287
296
|
- ragel/lexer.rb.rl.erb
|
288
297
|
- ragel/lexer_common.rl.erb
|
289
298
|
- spec/gherkin/c_lexer_spec.rb
|
290
|
-
- spec/gherkin/csharp_lexer_spec.rb
|
291
299
|
- spec/gherkin/fixtures/1.feature
|
292
300
|
- spec/gherkin/fixtures/comments_in_table.feature
|
293
301
|
- spec/gherkin/fixtures/complex.feature
|
302
|
+
- spec/gherkin/fixtures/complex.js
|
294
303
|
- spec/gherkin/fixtures/dos_line_endings.feature
|
295
304
|
- spec/gherkin/fixtures/i18n_fr.feature
|
296
305
|
- spec/gherkin/fixtures/i18n_no.feature
|
@@ -306,15 +315,18 @@ files:
|
|
306
315
|
- spec/gherkin/i18n_lexer_spec.rb
|
307
316
|
- spec/gherkin/i18n_spec.rb
|
308
317
|
- spec/gherkin/java_lexer_spec.rb
|
318
|
+
- spec/gherkin/output_stream_string_io.rb
|
309
319
|
- spec/gherkin/parser/filter_listener_spec.rb
|
320
|
+
- spec/gherkin/parser/formatter_listener_spec.rb
|
321
|
+
- spec/gherkin/parser/json_parser_spec.rb
|
310
322
|
- spec/gherkin/parser/parser_spec.rb
|
311
323
|
- spec/gherkin/parser/tag_expression_spec.rb
|
312
324
|
- spec/gherkin/rb_lexer_spec.rb
|
313
325
|
- spec/gherkin/sexp_recorder.rb
|
314
|
-
- spec/gherkin/shared/
|
315
|
-
- spec/gherkin/shared/
|
316
|
-
- spec/gherkin/shared/
|
317
|
-
- spec/gherkin/shared/
|
326
|
+
- spec/gherkin/shared/lexer_group.rb
|
327
|
+
- spec/gherkin/shared/py_string_group.rb
|
328
|
+
- spec/gherkin/shared/row_group.rb
|
329
|
+
- spec/gherkin/shared/tags_group.rb
|
318
330
|
- spec/spec_helper.rb
|
319
331
|
- tasks/bench.rake
|
320
332
|
- tasks/bench/feature_builder.rb
|
@@ -408,20 +420,22 @@ specification_version: 3
|
|
408
420
|
summary: Fast Gherkin lexer/parser
|
409
421
|
test_files:
|
410
422
|
- spec/gherkin/c_lexer_spec.rb
|
411
|
-
- spec/gherkin/csharp_lexer_spec.rb
|
412
423
|
- spec/gherkin/formatter/argument_spec.rb
|
413
424
|
- spec/gherkin/formatter/colors_spec.rb
|
414
425
|
- spec/gherkin/formatter/pretty_formatter_spec.rb
|
415
426
|
- spec/gherkin/i18n_lexer_spec.rb
|
416
427
|
- spec/gherkin/i18n_spec.rb
|
417
428
|
- spec/gherkin/java_lexer_spec.rb
|
429
|
+
- spec/gherkin/output_stream_string_io.rb
|
418
430
|
- spec/gherkin/parser/filter_listener_spec.rb
|
431
|
+
- spec/gherkin/parser/formatter_listener_spec.rb
|
432
|
+
- spec/gherkin/parser/json_parser_spec.rb
|
419
433
|
- spec/gherkin/parser/parser_spec.rb
|
420
434
|
- spec/gherkin/parser/tag_expression_spec.rb
|
421
435
|
- spec/gherkin/rb_lexer_spec.rb
|
422
436
|
- spec/gherkin/sexp_recorder.rb
|
423
|
-
- spec/gherkin/shared/
|
424
|
-
- spec/gherkin/shared/
|
425
|
-
- spec/gherkin/shared/
|
426
|
-
- spec/gherkin/shared/
|
437
|
+
- spec/gherkin/shared/lexer_group.rb
|
438
|
+
- spec/gherkin/shared/py_string_group.rb
|
439
|
+
- spec/gherkin/shared/row_group.rb
|
440
|
+
- spec/gherkin/shared/tags_group.rb
|
427
441
|
- spec/spec_helper.rb
|
@@ -1,14 +0,0 @@
|
|
1
|
-
Feature: Pretty printer
|
2
|
-
In order to have pretty gherkin
|
3
|
-
I want to verify that all prettified cucumber features parse OK
|
4
|
-
|
5
|
-
Scenario: Parse all the features in Cucumber
|
6
|
-
Given I have Cucumber's home dir defined in CUCUMBER_HOME
|
7
|
-
When I find all of the .feature files
|
8
|
-
And I parse the prettified representation of each of them
|
9
|
-
# Of course, we don't really want any errors. The last
|
10
|
-
# two files that were not identical are written to p1.feature
|
11
|
-
# and p2.feature. Do a diff -u p1.feature p2.feature
|
12
|
-
#
|
13
|
-
Then the following files should have errors:
|
14
|
-
| Path | Error |
|
@@ -1,20 +0,0 @@
|
|
1
|
-
#encoding: utf-8
|
2
|
-
if defined?(RUBY_ENGINE) && RUBY_ENGINE == "ironruby"
|
3
|
-
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
4
|
-
|
5
|
-
module Gherkin
|
6
|
-
module Lexer
|
7
|
-
describe "C# Lexer" do
|
8
|
-
before do
|
9
|
-
@listener = Gherkin::SexpRecorder.new
|
10
|
-
@lexer = Gherkin::Lexer.csharp['en'].new(@listener)
|
11
|
-
end
|
12
|
-
|
13
|
-
it_should_behave_like "a Gherkin lexer"
|
14
|
-
it_should_behave_like "a Gherkin lexer lexing tags"
|
15
|
-
it_should_behave_like "a Gherkin lexer lexing py_strings"
|
16
|
-
it_should_behave_like "a Gherkin lexer lexing rows"
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|