gherkin 1.0.3 → 1.0.4
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.txt +15 -6
- data/README.rdoc +23 -0
- data/Rakefile +1 -0
- data/VERSION.yml +1 -1
- data/features/step_definitions/gherkin_steps.rb +1 -1
- data/features/step_definitions/{pretty_printer_steps.rb → pretty_listener_step.rb} +2 -2
- data/gherkin.gemspec +24 -35
- data/java/Gherkin.iml +8 -14
- data/java/src/{gherkin → main/java/gherkin}/lexer/.gitignore +0 -0
- data/lib/gherkin.rb +1 -1
- data/lib/gherkin/c_lexer.rb +2 -2
- data/lib/gherkin/{format → formatter}/argument.rb +1 -1
- data/lib/gherkin/{tools → formatter}/colors.rb +1 -1
- data/lib/gherkin/{format → formatter}/monochrome_format.rb +1 -1
- data/lib/gherkin/{tools → formatter}/pretty_listener.rb +8 -9
- data/lib/gherkin/i18n.rb +27 -5
- data/lib/gherkin/i18n_lexer.rb +18 -44
- data/lib/gherkin/parser/filter_listener.rb +191 -0
- data/lib/gherkin/parser/parser.rb +142 -0
- data/lib/gherkin/parser/sexp.rb +45 -0
- data/lib/gherkin/parser/tag_expression.rb +46 -0
- data/lib/gherkin/rb_lexer.rb +2 -2
- data/ragel/lexer_common.rl.erb +1 -1
- data/spec/gherkin/{format → formatter}/argument_spec.rb +2 -2
- data/spec/gherkin/{tools → formatter}/colors_spec.rb +2 -2
- data/spec/gherkin/{tools → formatter}/pretty_listener_spec.rb +5 -5
- data/spec/gherkin/i18n_lexer_spec.rb +3 -3
- data/spec/gherkin/parser/filter_listener_spec.rb +363 -0
- data/spec/gherkin/parser/parser_spec.rb +35 -0
- data/spec/gherkin/parser/tag_expression_spec.rb +120 -0
- data/spec/gherkin/rb_lexer_spec.rb +0 -1
- data/spec/gherkin/sexp_recorder.rb +3 -3
- data/spec/gherkin/shared/lexer_spec.rb +19 -19
- data/spec/gherkin/shared/tags_spec.rb +4 -4
- data/tasks/bench.rake +2 -2
- data/tasks/compile.rake +1 -1
- data/tasks/ragel_task.rb +1 -1
- metadata +25 -36
- data/java/build.xml +0 -16
- data/java/src/gherkin/FixJava.java +0 -37
- data/java/src/gherkin/I18nLexer.java +0 -48
- data/java/src/gherkin/Lexer.java +0 -5
- data/java/src/gherkin/LexingError.java +0 -7
- data/java/src/gherkin/Listener.java +0 -29
- data/java/src/gherkin/Main.java +0 -17
- data/java/src/gherkin/ParseError.java +0 -22
- data/java/src/gherkin/Parser.java +0 -191
- data/java/src/gherkin/formatter/Argument.java +0 -39
- data/java/src/gherkin/formatter/ArgumentFormat.java +0 -17
- data/java/src/gherkin/formatter/Colors.java +0 -7
- data/java/src/gherkin/formatter/Formatter.java +0 -15
- data/java/src/gherkin/formatter/PrettyFormatter.java +0 -219
- data/java/src/gherkin/parser/StateMachineReader.java +0 -67
- data/java/test/gherkin/formatter/ArgumentTest.java +0 -17
- data/lib/gherkin/lexer.rb +0 -35
- data/lib/gherkin/parser.rb +0 -19
- data/lib/gherkin/rb_parser.rb +0 -125
- data/spec/gherkin/parser_spec.rb +0 -33
@@ -0,0 +1,120 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
|
2
|
+
require 'gherkin/parser/tag_expression'
|
3
|
+
|
4
|
+
module Gherkin
|
5
|
+
module Parser
|
6
|
+
describe TagExpression do
|
7
|
+
context "no tags" do
|
8
|
+
before(:each) do
|
9
|
+
@e = TagExpression.new
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should match @foo" do
|
13
|
+
@e.eval('@foo').should == true
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should match empty tags" do
|
17
|
+
@e.eval().should == true
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
context "@foo" do
|
22
|
+
before(:each) do
|
23
|
+
@e = TagExpression.new('@foo')
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should match @foo" do
|
27
|
+
@e.eval('@foo').should == true
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should not match @bar" do
|
31
|
+
@e.eval('@bar').should == false
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
context "!@foo" do
|
36
|
+
before(:each) do
|
37
|
+
@e = TagExpression.new('~@foo')
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should match @bar" do
|
41
|
+
@e.eval('@bar').should == true
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should not match @foo" do
|
45
|
+
@e.eval('@foo').should == false
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
context "@foo || @bar" do
|
50
|
+
before(:each) do
|
51
|
+
@e = TagExpression.new('@foo,@bar')
|
52
|
+
end
|
53
|
+
|
54
|
+
it "should match @foo" do
|
55
|
+
@e.eval('@foo').should == true
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should match @bar" do
|
59
|
+
@e.eval('@bar').should == true
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should not match @zap" do
|
63
|
+
@e.eval('@zap').should == false
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
context "(@foo || @bar) && !@zap" do
|
68
|
+
before(:each) do
|
69
|
+
@e = TagExpression.new('@foo,@bar', '~@zap')
|
70
|
+
end
|
71
|
+
|
72
|
+
it "should match @foo" do
|
73
|
+
@e.eval('@foo').should == true
|
74
|
+
end
|
75
|
+
|
76
|
+
it "should not match @foo @zap" do
|
77
|
+
@e.eval('@foo', '@zap').should == false
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
context "(@foo:3 || !@bar:4) && @zap:5" do
|
82
|
+
before(:each) do
|
83
|
+
@e = TagExpression.new('@foo:3,~@bar','@zap:5')
|
84
|
+
end
|
85
|
+
|
86
|
+
it "should count tags for positive tags" do
|
87
|
+
@e.limits.should == {'@foo' => 3, '@zap' => 5}
|
88
|
+
end
|
89
|
+
|
90
|
+
it "should match @foo @zap" do
|
91
|
+
@e.eval('@foo', '@zap').should == true
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
context "Parsing '@foo:3,~@bar', '@zap:5'" do
|
96
|
+
before(:each) do
|
97
|
+
@e = TagExpression.new(' @foo:3 , ~@bar ', ' @zap:5 ')
|
98
|
+
end
|
99
|
+
|
100
|
+
it "should split and trim" do
|
101
|
+
@e.__send__(:ruby_expression).should == "(!vars['@bar']||vars['@foo'])&&(vars['@zap'])"
|
102
|
+
end
|
103
|
+
|
104
|
+
it "should have limits" do
|
105
|
+
@e.limits.should == {"@zap"=>5, "@foo"=>3}
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
context "Parsing ''" do
|
110
|
+
before(:each) do
|
111
|
+
@e = TagExpression.new('')
|
112
|
+
end
|
113
|
+
|
114
|
+
it "should ignore empty tags" do
|
115
|
+
@e.eval("@foo").should == true
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
@@ -4,9 +4,9 @@ module Gherkin
|
|
4
4
|
@sexps = []
|
5
5
|
end
|
6
6
|
|
7
|
-
def method_missing(
|
8
|
-
args[0] = args[0].
|
9
|
-
@sexps << [
|
7
|
+
def method_missing(event, *args)
|
8
|
+
args[0] = args[0].to_a if event == :row # Special JRuby handling
|
9
|
+
@sexps << [event] + args
|
10
10
|
end
|
11
11
|
|
12
12
|
def to_sexp
|
@@ -56,7 +56,7 @@ module Gherkin
|
|
56
56
|
@listener.to_sexp.should == [
|
57
57
|
[:feature, "Feature", "hi", 1],
|
58
58
|
[:scenario, "Scenario", "test", 2],
|
59
|
-
[:tag, "hello", 4],
|
59
|
+
[:tag, "@hello", 4],
|
60
60
|
[:scenario, "Scenario", "another", 5],
|
61
61
|
[:eof]
|
62
62
|
]
|
@@ -404,16 +404,16 @@ Given I am a step
|
|
404
404
|
scan_file("simple_with_tags.feature")
|
405
405
|
@listener.to_sexp.should == [
|
406
406
|
[:comment, "# FC", 1],
|
407
|
-
[:tag, "ft",2],
|
407
|
+
[:tag, "@ft",2],
|
408
408
|
[:feature, "Feature", "hi", 3],
|
409
|
-
[:tag, "st1", 5],
|
410
|
-
[:tag, "st2", 5],
|
409
|
+
[:tag, "@st1", 5],
|
410
|
+
[:tag, "@st2", 5],
|
411
411
|
[:scenario, "Scenario", "First", 6],
|
412
412
|
[:step, "Given ", "Pepper", 7],
|
413
|
-
[:tag, "st3", 9],
|
414
|
-
[:tag, "st4", 10],
|
415
|
-
[:tag, "ST5", 10],
|
416
|
-
[:tag, "
|
413
|
+
[:tag, "@st3", 9],
|
414
|
+
[:tag, "@st4", 10],
|
415
|
+
[:tag, "@ST5", 10],
|
416
|
+
[:tag, "@#^%&ST6**!", 10],
|
417
417
|
[:scenario, "Scenario", "Second", 11],
|
418
418
|
[:eof]
|
419
419
|
]
|
@@ -427,7 +427,7 @@ Given I am a step
|
|
427
427
|
[:feature, "Feature", "Logging in\nSo that I can be myself", 1],
|
428
428
|
[:comment, "# Comment", 3],
|
429
429
|
[:scenario, "Scenario", "Anonymous user can get a login form.\nScenery here", 4],
|
430
|
-
[:tag, "tag", 7],
|
430
|
+
[:tag, "@tag", 7],
|
431
431
|
[:scenario, "Scenario", "Another one", 8],
|
432
432
|
[:eof]
|
433
433
|
]
|
@@ -440,20 +440,20 @@ Given I am a step
|
|
440
440
|
@listener.to_sexp.should == [
|
441
441
|
[:comment, "#Comment on line 1", 1],
|
442
442
|
[:comment, "#Comment on line 2", 2],
|
443
|
-
[:tag, "tag1", 3],
|
444
|
-
[:tag, "tag2", 3],
|
443
|
+
[:tag, "@tag1", 3],
|
444
|
+
[:tag, "@tag2", 3],
|
445
445
|
[:feature, "Feature", "Feature Text\nIn order to test multiline forms\nAs a ragel writer\nI need to check for complex combinations", 4],
|
446
446
|
[:comment, "#Comment on line 9", 9],
|
447
447
|
[:comment, "#Comment on line 11", 11],
|
448
448
|
[:background, "Background", "", 13],
|
449
449
|
[:step, "Given ", "this is a background step", 14],
|
450
450
|
[:step, "And ", "this is another one", 15],
|
451
|
-
[:tag, "tag3", 17],
|
452
|
-
[:tag, "tag4", 17],
|
451
|
+
[:tag, "@tag3", 17],
|
452
|
+
[:tag, "@tag4", 17],
|
453
453
|
[:scenario, "Scenario", "Reading a Scenario", 18],
|
454
454
|
[:step, "Given ", "there is a step", 19],
|
455
455
|
[:step, "But ", "not another step", 20],
|
456
|
-
[:tag, "tag3", 22],
|
456
|
+
[:tag, "@tag3", 22],
|
457
457
|
[:scenario, "Scenario", "Reading a second scenario\nWith two lines of text", 23],
|
458
458
|
[:comment, "#Comment on line 24", 25],
|
459
459
|
[:step, "Given ", "a third step with a table", 26],
|
@@ -484,20 +484,20 @@ Given I am a step
|
|
484
484
|
@listener.to_sexp.should == [
|
485
485
|
[:comment, "#Comment on line 1", 1],
|
486
486
|
[:comment, "#Comment on line 2", 2],
|
487
|
-
[:tag, "tag1", 3],
|
488
|
-
[:tag, "tag2", 3],
|
487
|
+
[:tag, "@tag1", 3],
|
488
|
+
[:tag, "@tag2", 3],
|
489
489
|
[:feature, "Feature", "Feature Text\r\nIn order to test multiline forms\r\nAs a ragel writer\r\nI need to check for complex combinations", 4],
|
490
490
|
[:comment, "#Comment on line 9", 9],
|
491
491
|
[:comment, "#Comment on line 11", 11],
|
492
492
|
[:background, "Background", "", 13],
|
493
493
|
[:step, "Given ", "this is a background step", 14],
|
494
494
|
[:step, "And ", "this is another one", 15],
|
495
|
-
[:tag, "tag3", 17],
|
496
|
-
[:tag, "tag4", 17],
|
495
|
+
[:tag, "@tag3", 17],
|
496
|
+
[:tag, "@tag4", 17],
|
497
497
|
[:scenario, "Scenario", "Reading a Scenario", 18],
|
498
498
|
[:step, "Given ", "there is a step", 19],
|
499
499
|
[:step, "But ", "not another step", 20],
|
500
|
-
[:tag, "tag3", 22],
|
500
|
+
[:tag, "@tag3", 22],
|
501
501
|
[:scenario, "Scenario", "Reading a second scenario\r\nWith two lines of text", 23],
|
502
502
|
[:comment, "#Comment on line 24", 25],
|
503
503
|
[:step, "Given ", "a third step with a table", 26],
|
@@ -5,7 +5,7 @@ module Gherkin
|
|
5
5
|
module Lexer
|
6
6
|
shared_examples_for "a Gherkin lexer lexing tags" do
|
7
7
|
it "should lex a single tag" do
|
8
|
-
@listener.should_receive(:tag).with("dog", 1)
|
8
|
+
@listener.should_receive(:tag).with("@dog", 1)
|
9
9
|
@lexer.scan("@dog\n")
|
10
10
|
end
|
11
11
|
|
@@ -15,13 +15,13 @@ module Gherkin
|
|
15
15
|
end
|
16
16
|
|
17
17
|
it "should lex UTF-8 tags" do
|
18
|
-
@listener.should_receive(:tag).with("
|
18
|
+
@listener.should_receive(:tag).with("@シナリオテンプレート", 1)
|
19
19
|
@lexer.scan("@シナリオテンプレート\n")
|
20
20
|
end
|
21
21
|
|
22
22
|
it "should lex mixed tags" do
|
23
|
-
@listener.should_receive(:tag).with("wip", 1).ordered
|
24
|
-
@listener.should_receive(:tag).with("
|
23
|
+
@listener.should_receive(:tag).with("@wip", 1).ordered
|
24
|
+
@listener.should_receive(:tag).with("@Значения", 1).ordered
|
25
25
|
@lexer.scan("@wip @Значения\n")
|
26
26
|
end
|
27
27
|
|
data/tasks/bench.rake
CHANGED
@@ -106,11 +106,11 @@ class Benchmarker
|
|
106
106
|
|
107
107
|
def run_rb_gherkin
|
108
108
|
require 'gherkin'
|
109
|
-
require 'gherkin/rb_lexer'
|
109
|
+
require 'gherkin/rb_lexer/en'
|
110
110
|
require 'null_listener'
|
111
111
|
@features.each do |feature|
|
112
112
|
parser = Gherkin::Parser.new(NullListener.new, true, "root")
|
113
|
-
lexer = Gherkin::RbLexer
|
113
|
+
lexer = Gherkin::RbLexer::En.new(parser)
|
114
114
|
lexer.scan(File.read(feature))
|
115
115
|
end
|
116
116
|
end
|
data/tasks/compile.rake
CHANGED
data/tasks/ragel_task.rb
CHANGED
@@ -28,7 +28,7 @@ class RagelTask
|
|
28
28
|
def target
|
29
29
|
{
|
30
30
|
'c' => "ext/gherkin_lexer_#{@i18n.sanitized_key}/gherkin_lexer_#{@i18n.sanitized_key}.c",
|
31
|
-
'java' => "java/src/gherkin/lexer/#{@i18n.sanitized_key.capitalize}.java",
|
31
|
+
'java' => "java/src/main/java/gherkin/lexer/#{@i18n.sanitized_key.capitalize}.java",
|
32
32
|
'rb' => "lib/gherkin/rb_lexer/#{@i18n.sanitized_key}.rb",
|
33
33
|
'csharp' => "tmp/#{@i18n.sanitized_key}.cs"
|
34
34
|
}[@lang]
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 1
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 1.0.
|
8
|
+
- 4
|
9
|
+
version: 1.0.4
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Mike Sassak
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2010-
|
19
|
+
date: 2010-04-07 00:00:00 +02:00
|
20
20
|
default_executable: gherkin
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
@@ -195,45 +195,33 @@ files:
|
|
195
195
|
- features/parser_with_native_lexer.feature
|
196
196
|
- features/pretty_printer.feature
|
197
197
|
- features/step_definitions/gherkin_steps.rb
|
198
|
-
- features/step_definitions/
|
198
|
+
- features/step_definitions/pretty_listener_step.rb
|
199
199
|
- features/steps_parser.feature
|
200
200
|
- features/support/env.rb
|
201
201
|
- gherkin.gemspec
|
202
202
|
- java/.gitignore
|
203
203
|
- java/Gherkin.iml
|
204
|
-
- java/
|
205
|
-
- java/src/gherkin/FixJava.java
|
206
|
-
- java/src/gherkin/I18nLexer.java
|
207
|
-
- java/src/gherkin/Lexer.java
|
208
|
-
- java/src/gherkin/LexingError.java
|
209
|
-
- java/src/gherkin/Listener.java
|
210
|
-
- java/src/gherkin/Main.java
|
211
|
-
- java/src/gherkin/ParseError.java
|
212
|
-
- java/src/gherkin/Parser.java
|
213
|
-
- java/src/gherkin/formatter/Argument.java
|
214
|
-
- java/src/gherkin/formatter/ArgumentFormat.java
|
215
|
-
- java/src/gherkin/formatter/Colors.java
|
216
|
-
- java/src/gherkin/formatter/Formatter.java
|
217
|
-
- java/src/gherkin/formatter/PrettyFormatter.java
|
218
|
-
- java/src/gherkin/lexer/.gitignore
|
219
|
-
- java/src/gherkin/parser/StateMachineReader.java
|
220
|
-
- java/test/gherkin/formatter/ArgumentTest.java
|
204
|
+
- java/src/main/java/gherkin/lexer/.gitignore
|
221
205
|
- lib/.gitignore
|
222
206
|
- lib/gherkin.rb
|
223
207
|
- lib/gherkin/c_lexer.rb
|
224
208
|
- lib/gherkin/cli/main.rb
|
225
209
|
- lib/gherkin/core_ext/array.rb
|
226
210
|
- lib/gherkin/csharp_lexer.rb
|
227
|
-
- lib/gherkin/
|
228
|
-
- lib/gherkin/
|
211
|
+
- lib/gherkin/formatter/argument.rb
|
212
|
+
- lib/gherkin/formatter/colors.rb
|
213
|
+
- lib/gherkin/formatter/monochrome_format.rb
|
214
|
+
- lib/gherkin/formatter/pretty_listener.rb
|
229
215
|
- lib/gherkin/i18n.rb
|
230
216
|
- lib/gherkin/i18n.yml
|
231
217
|
- lib/gherkin/i18n_lexer.rb
|
232
|
-
- lib/gherkin/
|
233
|
-
- lib/gherkin/parser.rb
|
218
|
+
- lib/gherkin/parser/filter_listener.rb
|
234
219
|
- lib/gherkin/parser/meta.txt
|
220
|
+
- lib/gherkin/parser/parser.rb
|
235
221
|
- lib/gherkin/parser/root.txt
|
222
|
+
- lib/gherkin/parser/sexp.rb
|
236
223
|
- lib/gherkin/parser/steps.txt
|
224
|
+
- lib/gherkin/parser/tag_expression.rb
|
237
225
|
- lib/gherkin/rb_lexer.rb
|
238
226
|
- lib/gherkin/rb_lexer/.gitignore
|
239
227
|
- lib/gherkin/rb_lexer/README.rdoc
|
@@ -278,11 +266,8 @@ files:
|
|
278
266
|
- lib/gherkin/rb_lexer/vi.rb
|
279
267
|
- lib/gherkin/rb_lexer/zhCN.rb
|
280
268
|
- lib/gherkin/rb_lexer/zhTW.rb
|
281
|
-
- lib/gherkin/rb_parser.rb
|
282
269
|
- lib/gherkin/tools.rb
|
283
|
-
- lib/gherkin/tools/colors.rb
|
284
270
|
- lib/gherkin/tools/files.rb
|
285
|
-
- lib/gherkin/tools/pretty_listener.rb
|
286
271
|
- lib/gherkin/tools/reformat.rb
|
287
272
|
- lib/gherkin/tools/stats.rb
|
288
273
|
- lib/gherkin/tools/stats_listener.rb
|
@@ -305,19 +290,21 @@ files:
|
|
305
290
|
- spec/gherkin/fixtures/simple.feature
|
306
291
|
- spec/gherkin/fixtures/simple_with_comments.feature
|
307
292
|
- spec/gherkin/fixtures/simple_with_tags.feature
|
308
|
-
- spec/gherkin/
|
293
|
+
- spec/gherkin/formatter/argument_spec.rb
|
294
|
+
- spec/gherkin/formatter/colors_spec.rb
|
295
|
+
- spec/gherkin/formatter/pretty_listener_spec.rb
|
309
296
|
- spec/gherkin/i18n_lexer_spec.rb
|
310
297
|
- spec/gherkin/i18n_spec.rb
|
311
298
|
- spec/gherkin/java_lexer_spec.rb
|
312
|
-
- spec/gherkin/
|
299
|
+
- spec/gherkin/parser/filter_listener_spec.rb
|
300
|
+
- spec/gherkin/parser/parser_spec.rb
|
301
|
+
- spec/gherkin/parser/tag_expression_spec.rb
|
313
302
|
- spec/gherkin/rb_lexer_spec.rb
|
314
303
|
- spec/gherkin/sexp_recorder.rb
|
315
304
|
- spec/gherkin/shared/lexer_spec.rb
|
316
305
|
- spec/gherkin/shared/py_string_spec.rb
|
317
306
|
- spec/gherkin/shared/row_spec.rb
|
318
307
|
- spec/gherkin/shared/tags_spec.rb
|
319
|
-
- spec/gherkin/tools/colors_spec.rb
|
320
|
-
- spec/gherkin/tools/pretty_listener_spec.rb
|
321
308
|
- spec/spec_helper.rb
|
322
309
|
- tasks/bench.rake
|
323
310
|
- tasks/bench/feature_builder.rb
|
@@ -361,17 +348,19 @@ summary: Fast Gherkin lexer/parser
|
|
361
348
|
test_files:
|
362
349
|
- spec/gherkin/c_lexer_spec.rb
|
363
350
|
- spec/gherkin/csharp_lexer_spec.rb
|
364
|
-
- spec/gherkin/
|
351
|
+
- spec/gherkin/formatter/argument_spec.rb
|
352
|
+
- spec/gherkin/formatter/colors_spec.rb
|
353
|
+
- spec/gherkin/formatter/pretty_listener_spec.rb
|
365
354
|
- spec/gherkin/i18n_lexer_spec.rb
|
366
355
|
- spec/gherkin/i18n_spec.rb
|
367
356
|
- spec/gherkin/java_lexer_spec.rb
|
368
|
-
- spec/gherkin/
|
357
|
+
- spec/gherkin/parser/filter_listener_spec.rb
|
358
|
+
- spec/gherkin/parser/parser_spec.rb
|
359
|
+
- spec/gherkin/parser/tag_expression_spec.rb
|
369
360
|
- spec/gherkin/rb_lexer_spec.rb
|
370
361
|
- spec/gherkin/sexp_recorder.rb
|
371
362
|
- spec/gherkin/shared/lexer_spec.rb
|
372
363
|
- spec/gherkin/shared/py_string_spec.rb
|
373
364
|
- spec/gherkin/shared/row_spec.rb
|
374
365
|
- spec/gherkin/shared/tags_spec.rb
|
375
|
-
- spec/gherkin/tools/colors_spec.rb
|
376
|
-
- spec/gherkin/tools/pretty_listener_spec.rb
|
377
366
|
- spec/spec_helper.rb
|
data/java/build.xml
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
<project name="Gherkin" default="jar" basedir=".">
|
2
|
-
<target name="compile" description="Compile">
|
3
|
-
<mkdir dir="${basedir}/target/classes"/>
|
4
|
-
<javac srcdir="src" destdir="target/classes" debug="on"/>
|
5
|
-
</target>
|
6
|
-
|
7
|
-
<target name="jar" description="Jar" depends="compile">
|
8
|
-
<jar destfile="${basedir}/../lib/gherkin.jar">
|
9
|
-
<fileset dir="${basedir}/target/classes" />
|
10
|
-
<fileset dir="${basedir}/../lib" includes="gherkin/parser/*.txt" />
|
11
|
-
<manifest>
|
12
|
-
<attribute name="Main-Class" value="gherkin.Main" />
|
13
|
-
</manifest>
|
14
|
-
</jar>
|
15
|
-
</target>
|
16
|
-
</project>
|
@@ -1,37 +0,0 @@
|
|
1
|
-
package gherkin;
|
2
|
-
|
3
|
-
import java.io.IOException;
|
4
|
-
import java.io.InputStreamReader;
|
5
|
-
import java.io.Reader;
|
6
|
-
import java.util.List;
|
7
|
-
|
8
|
-
public class FixJava {
|
9
|
-
public static String join(List<String> strings, String separator) {
|
10
|
-
StringBuilder sb = new StringBuilder();
|
11
|
-
int i = 0;
|
12
|
-
for (String s : strings) {
|
13
|
-
if (i != 0) sb.append(separator);
|
14
|
-
sb.append(s);
|
15
|
-
i++;
|
16
|
-
}
|
17
|
-
return sb.toString();
|
18
|
-
}
|
19
|
-
|
20
|
-
public static String readResource(String filePath) throws IOException {
|
21
|
-
Reader reader = new InputStreamReader(FixJava.class.getResourceAsStream(filePath));
|
22
|
-
return readReader(reader);
|
23
|
-
}
|
24
|
-
|
25
|
-
public static String readReader(Reader reader) throws IOException {
|
26
|
-
final char[] buffer = new char[0x10000];
|
27
|
-
StringBuilder sb = new StringBuilder();
|
28
|
-
int read;
|
29
|
-
do {
|
30
|
-
read = reader.read(buffer, 0, buffer.length);
|
31
|
-
if (read > 0) {
|
32
|
-
sb.append(buffer, 0, read);
|
33
|
-
}
|
34
|
-
} while (read >= 0);
|
35
|
-
return sb.toString();
|
36
|
-
}
|
37
|
-
}
|