gherkin 1.0.2-i386-mingw32 → 1.0.3-i386-mingw32
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/.gitattributes +1 -0
- data/History.txt +18 -0
- data/README.rdoc +12 -1
- data/Rakefile +4 -2
- data/VERSION.yml +1 -1
- data/bin/gherkin +1 -1
- data/dotnet/.gitignore +13 -0
- data/features/feature_parser.feature +22 -2
- data/features/native_lexer.feature +1 -1
- data/features/parser_with_native_lexer.feature +1 -1
- data/features/step_definitions/gherkin_steps.rb +2 -6
- data/features/step_definitions/pretty_printer_steps.rb +2 -3
- data/features/steps_parser.feature +1 -1
- data/gherkin.gemspec +46 -18
- data/java/Gherkin.iml +2 -4
- data/java/build.xml +3 -0
- data/java/src/gherkin/FixJava.java +6 -3
- data/java/src/gherkin/I18nLexer.java +48 -0
- data/java/src/gherkin/Listener.java +3 -1
- data/java/src/gherkin/Main.java +17 -0
- data/java/src/gherkin/Parser.java +9 -3
- data/java/src/gherkin/formatter/Argument.java +39 -0
- data/java/src/gherkin/formatter/ArgumentFormat.java +17 -0
- data/java/src/gherkin/formatter/Colors.java +7 -0
- data/java/src/gherkin/formatter/Formatter.java +15 -0
- data/java/src/gherkin/formatter/PrettyFormatter.java +219 -0
- data/java/src/gherkin/parser/StateMachineReader.java +8 -3
- data/java/test/gherkin/formatter/ArgumentTest.java +17 -0
- data/lib/gherkin/csharp_lexer.rb +15 -0
- data/lib/gherkin/format/argument.rb +35 -0
- data/lib/gherkin/format/monochrome_format.rb +9 -0
- data/lib/gherkin/i18n.rb +22 -0
- data/lib/gherkin/i18n.yml +34 -20
- data/lib/gherkin/i18n_lexer.rb +57 -13
- data/lib/gherkin/lexer.rb +9 -18
- data/lib/gherkin/parser.rb +3 -3
- data/lib/gherkin/parser/meta.txt +5 -4
- data/lib/gherkin/parser/root.txt +11 -9
- data/lib/gherkin/parser/steps.txt +4 -3
- data/lib/gherkin/rb_parser.rb +13 -5
- data/lib/gherkin/tools/colors.rb +119 -0
- data/lib/gherkin/tools/files.rb +6 -1
- data/lib/gherkin/tools/pretty_listener.rb +115 -23
- data/ragel/lexer.c.rl.erb +67 -51
- data/ragel/lexer.csharp.rl.erb +240 -0
- data/ragel/lexer.java.rl.erb +27 -18
- data/ragel/lexer.rb.rl.erb +17 -17
- data/ragel/lexer_common.rl.erb +8 -8
- data/spec/gherkin/c_lexer_spec.rb +4 -4
- data/spec/gherkin/csharp_lexer_spec.rb +20 -0
- data/spec/gherkin/fixtures/comments_in_table.feature +9 -0
- data/spec/gherkin/fixtures/complex.feature +2 -0
- data/spec/gherkin/fixtures/dos_line_endings.feature +45 -0
- data/spec/gherkin/fixtures/i18n_fr.feature +1 -0
- data/spec/gherkin/fixtures/i18n_no.feature +1 -0
- data/spec/gherkin/fixtures/i18n_zh-CN.feature +1 -0
- data/spec/gherkin/format/argument_spec.rb +28 -0
- data/spec/gherkin/i18n_lexer_spec.rb +4 -4
- data/spec/gherkin/i18n_spec.rb +31 -23
- data/spec/gherkin/java_lexer_spec.rb +4 -3
- data/spec/gherkin/parser_spec.rb +5 -0
- data/spec/gherkin/rb_lexer_spec.rb +4 -2
- data/spec/gherkin/sexp_recorder.rb +1 -1
- data/spec/gherkin/shared/lexer_spec.rb +169 -60
- data/spec/gherkin/shared/py_string_spec.rb +6 -0
- data/spec/gherkin/shared/row_spec.rb +107 -0
- data/spec/gherkin/shared/tags_spec.rb +1 -1
- data/spec/gherkin/tools/colors_spec.rb +19 -0
- data/spec/gherkin/tools/pretty_listener_spec.rb +147 -0
- data/spec/spec_helper.rb +31 -7
- data/tasks/compile.rake +81 -7
- data/tasks/ragel_task.rb +6 -4
- data/tasks/rspec.rake +2 -2
- metadata +92 -31
- data/lib/gherkin/java_lexer.rb +0 -10
- data/spec/gherkin/shared/table_spec.rb +0 -97
data/tasks/ragel_task.rb
CHANGED
@@ -29,7 +29,8 @@ class RagelTask
|
|
29
29
|
{
|
30
30
|
'c' => "ext/gherkin_lexer_#{@i18n.sanitized_key}/gherkin_lexer_#{@i18n.sanitized_key}.c",
|
31
31
|
'java' => "java/src/gherkin/lexer/#{@i18n.sanitized_key.capitalize}.java",
|
32
|
-
'rb' => "lib/gherkin/rb_lexer/#{@i18n.sanitized_key}.rb"
|
32
|
+
'rb' => "lib/gherkin/rb_lexer/#{@i18n.sanitized_key}.rb",
|
33
|
+
'csharp' => "tmp/#{@i18n.sanitized_key}.cs"
|
33
34
|
}[@lang]
|
34
35
|
end
|
35
36
|
|
@@ -51,9 +52,10 @@ class RagelTask
|
|
51
52
|
|
52
53
|
def flags
|
53
54
|
{
|
54
|
-
'c'
|
55
|
-
'java'
|
56
|
-
'rb'
|
55
|
+
'c' => '-C',
|
56
|
+
'java' => '-J',
|
57
|
+
'rb' => '-R',
|
58
|
+
'csharp' => '-A -L -T0'
|
57
59
|
}[@lang]
|
58
60
|
end
|
59
61
|
|
data/tasks/rspec.rake
CHANGED
@@ -2,13 +2,13 @@ require 'spec/rake/spectask'
|
|
2
2
|
|
3
3
|
Spec::Rake::SpecTask.new(:spec) do |spec|
|
4
4
|
spec.libs << 'lib' << 'spec'
|
5
|
-
spec.spec_opts << '--color'
|
5
|
+
spec.spec_opts << '--color --diff'
|
6
6
|
end
|
7
7
|
task :spec => [:check_dependencies]
|
8
8
|
|
9
9
|
Spec::Rake::SpecTask.new(:rcov) do |spec|
|
10
10
|
spec.libs << 'lib' << 'spec'
|
11
|
-
spec.spec_opts << '--color'
|
11
|
+
spec.spec_opts << '--color --diff'
|
12
12
|
spec.pattern = 'spec/**/*_spec.rb'
|
13
13
|
spec.rcov = true
|
14
14
|
spec.rcov_opts = %w{--exclude spec\/}
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gherkin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 1
|
7
|
+
- 0
|
8
|
+
- 3
|
9
|
+
version: 1.0.3
|
5
10
|
platform: i386-mingw32
|
6
11
|
authors:
|
7
12
|
- Mike Sassak
|
@@ -11,49 +16,78 @@ autorequire:
|
|
11
16
|
bindir: bin
|
12
17
|
cert_chain: []
|
13
18
|
|
14
|
-
date:
|
19
|
+
date: 2010-03-30 00:00:00 +02:00
|
15
20
|
default_executable: gherkin
|
16
21
|
dependencies:
|
17
22
|
- !ruby/object:Gem::Dependency
|
18
23
|
name: trollop
|
19
|
-
|
20
|
-
|
21
|
-
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
prerelease: false
|
25
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
22
26
|
requirements:
|
23
27
|
- - ">="
|
24
28
|
- !ruby/object:Gem::Version
|
29
|
+
segments:
|
30
|
+
- 1
|
31
|
+
- 15
|
25
32
|
version: "1.15"
|
26
|
-
|
33
|
+
type: :runtime
|
34
|
+
version_requirements: *id001
|
27
35
|
- !ruby/object:Gem::Dependency
|
28
36
|
name: rspec
|
29
|
-
|
30
|
-
|
31
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
prerelease: false
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
32
39
|
requirements:
|
33
40
|
- - ">="
|
34
41
|
- !ruby/object:Gem::Version
|
35
|
-
|
36
|
-
|
42
|
+
segments:
|
43
|
+
- 1
|
44
|
+
- 3
|
45
|
+
- 0
|
46
|
+
version: 1.3.0
|
47
|
+
type: :development
|
48
|
+
version_requirements: *id002
|
37
49
|
- !ruby/object:Gem::Dependency
|
38
50
|
name: cucumber
|
39
|
-
|
40
|
-
|
41
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
prerelease: false
|
52
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
42
53
|
requirements:
|
43
54
|
- - ">="
|
44
55
|
- !ruby/object:Gem::Version
|
45
|
-
|
46
|
-
|
56
|
+
segments:
|
57
|
+
- 0
|
58
|
+
- 6
|
59
|
+
- 2
|
60
|
+
version: 0.6.2
|
61
|
+
type: :development
|
62
|
+
version_requirements: *id003
|
47
63
|
- !ruby/object:Gem::Dependency
|
48
64
|
name: rake-compiler
|
49
|
-
|
50
|
-
|
51
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
prerelease: false
|
66
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
52
67
|
requirements:
|
53
68
|
- - ">="
|
54
69
|
- !ruby/object:Gem::Version
|
70
|
+
segments:
|
71
|
+
- 0
|
72
|
+
- 7
|
73
|
+
- 0
|
55
74
|
version: 0.7.0
|
56
|
-
|
75
|
+
type: :development
|
76
|
+
version_requirements: *id004
|
77
|
+
- !ruby/object:Gem::Dependency
|
78
|
+
name: albacore
|
79
|
+
prerelease: false
|
80
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
segments:
|
85
|
+
- 0
|
86
|
+
- 1
|
87
|
+
- 0
|
88
|
+
version: 0.1.0
|
89
|
+
type: :development
|
90
|
+
version_requirements: *id005
|
57
91
|
description: A fast Gherkin lexer/parser based on the Ragel State Machine Compiler.
|
58
92
|
email: cukes@googlegroups.com
|
59
93
|
executables:
|
@@ -64,6 +98,7 @@ extra_rdoc_files:
|
|
64
98
|
- LICENSE
|
65
99
|
- README.rdoc
|
66
100
|
files:
|
101
|
+
- .gitattributes
|
67
102
|
- .gitignore
|
68
103
|
- .mailmap
|
69
104
|
- History.txt
|
@@ -73,6 +108,7 @@ files:
|
|
73
108
|
- VERSION.yml
|
74
109
|
- bin/gherkin
|
75
110
|
- cucumber.yml
|
111
|
+
- dotnet/.gitignore
|
76
112
|
- features/feature_parser.feature
|
77
113
|
- features/native_lexer.feature
|
78
114
|
- features/parser_with_native_lexer.feature
|
@@ -86,22 +122,32 @@ files:
|
|
86
122
|
- java/Gherkin.iml
|
87
123
|
- java/build.xml
|
88
124
|
- java/src/gherkin/FixJava.java
|
125
|
+
- java/src/gherkin/I18nLexer.java
|
89
126
|
- java/src/gherkin/Lexer.java
|
90
127
|
- java/src/gherkin/LexingError.java
|
91
128
|
- java/src/gherkin/Listener.java
|
129
|
+
- java/src/gherkin/Main.java
|
92
130
|
- java/src/gherkin/ParseError.java
|
93
131
|
- java/src/gherkin/Parser.java
|
132
|
+
- java/src/gherkin/formatter/Argument.java
|
133
|
+
- java/src/gherkin/formatter/ArgumentFormat.java
|
134
|
+
- java/src/gherkin/formatter/Colors.java
|
135
|
+
- java/src/gherkin/formatter/Formatter.java
|
136
|
+
- java/src/gherkin/formatter/PrettyFormatter.java
|
94
137
|
- java/src/gherkin/lexer/.gitignore
|
95
138
|
- java/src/gherkin/parser/StateMachineReader.java
|
139
|
+
- java/test/gherkin/formatter/ArgumentTest.java
|
96
140
|
- lib/.gitignore
|
97
141
|
- lib/gherkin.rb
|
98
142
|
- lib/gherkin/c_lexer.rb
|
99
143
|
- lib/gherkin/cli/main.rb
|
100
144
|
- lib/gherkin/core_ext/array.rb
|
145
|
+
- lib/gherkin/csharp_lexer.rb
|
146
|
+
- lib/gherkin/format/argument.rb
|
147
|
+
- lib/gherkin/format/monochrome_format.rb
|
101
148
|
- lib/gherkin/i18n.rb
|
102
149
|
- lib/gherkin/i18n.yml
|
103
150
|
- lib/gherkin/i18n_lexer.rb
|
104
|
-
- lib/gherkin/java_lexer.rb
|
105
151
|
- lib/gherkin/lexer.rb
|
106
152
|
- lib/gherkin/parser.rb
|
107
153
|
- lib/gherkin/parser/meta.txt
|
@@ -112,6 +158,7 @@ files:
|
|
112
158
|
- lib/gherkin/rb_lexer/README.rdoc
|
113
159
|
- lib/gherkin/rb_parser.rb
|
114
160
|
- lib/gherkin/tools.rb
|
161
|
+
- lib/gherkin/tools/colors.rb
|
115
162
|
- lib/gherkin/tools/files.rb
|
116
163
|
- lib/gherkin/tools/pretty_listener.rb
|
117
164
|
- lib/gherkin/tools/reformat.rb
|
@@ -119,12 +166,13 @@ files:
|
|
119
166
|
- lib/gherkin/tools/stats_listener.rb
|
120
167
|
- lib/gherkin_lexer_ar.so
|
121
168
|
- lib/gherkin_lexer_bg.so
|
122
|
-
- lib/
|
169
|
+
- lib/gherkin_lexer_ca.so
|
123
170
|
- lib/gherkin_lexer_cs.so
|
124
|
-
- lib/
|
171
|
+
- lib/gherkin_lexer_cyGB.so
|
125
172
|
- lib/gherkin_lexer_da.so
|
126
173
|
- lib/gherkin_lexer_de.so
|
127
174
|
- lib/gherkin_lexer_en.so
|
175
|
+
- lib/gherkin_lexer_enScouse.so
|
128
176
|
- lib/gherkin_lexer_enau.so
|
129
177
|
- lib/gherkin_lexer_enlol.so
|
130
178
|
- lib/gherkin_lexer_entx.so
|
@@ -146,12 +194,12 @@ files:
|
|
146
194
|
- lib/gherkin_lexer_pl.so
|
147
195
|
- lib/gherkin_lexer_pt.so
|
148
196
|
- lib/gherkin_lexer_ro.so
|
149
|
-
- lib/
|
197
|
+
- lib/gherkin_lexer_roRO.so
|
150
198
|
- lib/gherkin_lexer_ru.so
|
151
|
-
- lib/gherkin_lexer_se.so
|
152
199
|
- lib/gherkin_lexer_sk.so
|
153
|
-
- lib/
|
200
|
+
- lib/gherkin_lexer_srCyrl.so
|
154
201
|
- lib/gherkin_lexer_srLatn.so
|
202
|
+
- lib/gherkin_lexer_sv.so
|
155
203
|
- lib/gherkin_lexer_tr.so
|
156
204
|
- lib/gherkin_lexer_uz.so
|
157
205
|
- lib/gherkin_lexer_vi.so
|
@@ -160,18 +208,23 @@ files:
|
|
160
208
|
- nativegems.sh
|
161
209
|
- ragel/i18n/.gitignore
|
162
210
|
- ragel/lexer.c.rl.erb
|
211
|
+
- ragel/lexer.csharp.rl.erb
|
163
212
|
- ragel/lexer.java.rl.erb
|
164
213
|
- ragel/lexer.rb.rl.erb
|
165
214
|
- ragel/lexer_common.rl.erb
|
166
215
|
- spec/gherkin/c_lexer_spec.rb
|
216
|
+
- spec/gherkin/csharp_lexer_spec.rb
|
167
217
|
- spec/gherkin/fixtures/1.feature
|
218
|
+
- spec/gherkin/fixtures/comments_in_table.feature
|
168
219
|
- spec/gherkin/fixtures/complex.feature
|
220
|
+
- spec/gherkin/fixtures/dos_line_endings.feature
|
169
221
|
- spec/gherkin/fixtures/i18n_fr.feature
|
170
222
|
- spec/gherkin/fixtures/i18n_no.feature
|
171
223
|
- spec/gherkin/fixtures/i18n_zh-CN.feature
|
172
224
|
- spec/gherkin/fixtures/simple.feature
|
173
225
|
- spec/gherkin/fixtures/simple_with_comments.feature
|
174
226
|
- spec/gherkin/fixtures/simple_with_tags.feature
|
227
|
+
- spec/gherkin/format/argument_spec.rb
|
175
228
|
- spec/gherkin/i18n_lexer_spec.rb
|
176
229
|
- spec/gherkin/i18n_spec.rb
|
177
230
|
- spec/gherkin/java_lexer_spec.rb
|
@@ -180,8 +233,10 @@ files:
|
|
180
233
|
- spec/gherkin/sexp_recorder.rb
|
181
234
|
- spec/gherkin/shared/lexer_spec.rb
|
182
235
|
- spec/gherkin/shared/py_string_spec.rb
|
183
|
-
- spec/gherkin/shared/
|
236
|
+
- spec/gherkin/shared/row_spec.rb
|
184
237
|
- spec/gherkin/shared/tags_spec.rb
|
238
|
+
- spec/gherkin/tools/colors_spec.rb
|
239
|
+
- spec/gherkin/tools/pretty_listener_spec.rb
|
185
240
|
- spec/spec_helper.rb
|
186
241
|
- tasks/bench.rake
|
187
242
|
- tasks/bench/feature_builder.rb
|
@@ -205,23 +260,27 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
205
260
|
requirements:
|
206
261
|
- - ">="
|
207
262
|
- !ruby/object:Gem::Version
|
263
|
+
segments:
|
264
|
+
- 0
|
208
265
|
version: "0"
|
209
|
-
version:
|
210
266
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
211
267
|
requirements:
|
212
268
|
- - ">="
|
213
269
|
- !ruby/object:Gem::Version
|
270
|
+
segments:
|
271
|
+
- 0
|
214
272
|
version: "0"
|
215
|
-
version:
|
216
273
|
requirements: []
|
217
274
|
|
218
275
|
rubyforge_project:
|
219
|
-
rubygems_version: 1.3.
|
276
|
+
rubygems_version: 1.3.6
|
220
277
|
signing_key:
|
221
278
|
specification_version: 3
|
222
279
|
summary: Fast Gherkin lexer/parser
|
223
280
|
test_files:
|
224
281
|
- spec/gherkin/c_lexer_spec.rb
|
282
|
+
- spec/gherkin/csharp_lexer_spec.rb
|
283
|
+
- spec/gherkin/format/argument_spec.rb
|
225
284
|
- spec/gherkin/i18n_lexer_spec.rb
|
226
285
|
- spec/gherkin/i18n_spec.rb
|
227
286
|
- spec/gherkin/java_lexer_spec.rb
|
@@ -230,6 +289,8 @@ test_files:
|
|
230
289
|
- spec/gherkin/sexp_recorder.rb
|
231
290
|
- spec/gherkin/shared/lexer_spec.rb
|
232
291
|
- spec/gherkin/shared/py_string_spec.rb
|
233
|
-
- spec/gherkin/shared/
|
292
|
+
- spec/gherkin/shared/row_spec.rb
|
234
293
|
- spec/gherkin/shared/tags_spec.rb
|
294
|
+
- spec/gherkin/tools/colors_spec.rb
|
295
|
+
- spec/gherkin/tools/pretty_listener_spec.rb
|
235
296
|
- spec/spec_helper.rb
|
data/lib/gherkin/java_lexer.rb
DELETED
@@ -1,97 +0,0 @@
|
|
1
|
-
#encoding: utf-8
|
2
|
-
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
|
3
|
-
|
4
|
-
module Gherkin
|
5
|
-
module Lexer
|
6
|
-
shared_examples_for "a Gherkin lexer lexing tables" do
|
7
|
-
tables = {
|
8
|
-
"|a|b|\n" => [%w{a b}],
|
9
|
-
"|a|b|c|\n" => [%w{a b c}],
|
10
|
-
"|c|d|\n|e|f|\n" => [%w{c d}, %w{e f}]
|
11
|
-
}
|
12
|
-
|
13
|
-
tables.each do |text, expected|
|
14
|
-
it "should parse #{text}" do
|
15
|
-
@listener.should_receive(:table).with(t(expected), 1)
|
16
|
-
@lexer.scan(text.dup)
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
it "should parse a table with many columns" do
|
21
|
-
@listener.should_receive(:table).with(t([%w{a b c d e f g h i j k l m n o p}]), 1)
|
22
|
-
@lexer.scan("|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|\n")
|
23
|
-
end
|
24
|
-
|
25
|
-
it "should parse a multicharacter cell content" do
|
26
|
-
@listener.should_receive(:table).with(t([%w{foo bar}]), 1)
|
27
|
-
@lexer.scan("| foo | bar |\n")
|
28
|
-
end
|
29
|
-
|
30
|
-
it "should parse cells with spaces within the content" do
|
31
|
-
@listener.should_receive(:table).with(t([["Dill pickle", "Valencia orange"], ["Ruby red grapefruit", "Tire iron"]]), 1)
|
32
|
-
@lexer.scan("| Dill pickle | Valencia orange |\n| Ruby red grapefruit | Tire iron |\n")
|
33
|
-
end
|
34
|
-
|
35
|
-
it "should allow utf-8" do
|
36
|
-
# Fails in 1.9.1!
|
37
|
-
# 'Gherkin::Lexer::Table should allow utf-8 with using == to evaluate' FAILED
|
38
|
-
# expected: [[:table, [["ůﻚ", "2"]], 1]],
|
39
|
-
# got: [[:table, [["\xC5\xAF\xEF\xBB\x9A", "2"]], 1]] (using ==)
|
40
|
-
# BUT, simply running:
|
41
|
-
# [[:table, [["ůﻚ", "2"]], 1]].should == [[:table, [["\xC5\xAF\xEF\xBB\x9A", "2"]], 1]]
|
42
|
-
# passes
|
43
|
-
#
|
44
|
-
@lexer.scan(" | ůﻚ | 2 | \n")
|
45
|
-
@listener.to_sexp.should == [
|
46
|
-
[:table, [["ůﻚ", "2"]], 1]
|
47
|
-
]
|
48
|
-
end
|
49
|
-
|
50
|
-
it "should allow utf-8 using should_receive" do
|
51
|
-
@listener.should_receive(:table).with(t([['繁體中文 而且','並且','繁體中文 而且','並且']]), 1)
|
52
|
-
@lexer.scan("| 繁體中文 而且|並且| 繁體中文 而且|並且|\n")
|
53
|
-
end
|
54
|
-
|
55
|
-
it "should parse a 2x2 table" do
|
56
|
-
@listener.should_receive(:table).with(t([%w{1 2}, %w{3 4}]), 1)
|
57
|
-
@lexer.scan("| 1 | 2 |\n| 3 | 4 |\n")
|
58
|
-
end
|
59
|
-
|
60
|
-
it "should parse a 2x2 table with several newlines" do
|
61
|
-
@listener.should_receive(:table).with(t([%w{1 2}, %w{3 4}]), 1)
|
62
|
-
@lexer.scan("| 1 | 2 |\n| 3 | 4 |\n\n\n")
|
63
|
-
end
|
64
|
-
|
65
|
-
it "should parse a 2x2 table with empty cells" do
|
66
|
-
@listener.should_receive(:table).with(t([['1', ''], ['', '4']]), 1)
|
67
|
-
@lexer.scan("| 1 | |\n|| 4 |\n")
|
68
|
-
end
|
69
|
-
|
70
|
-
it "should parse a 1x2 table that does not end in a newline" do
|
71
|
-
@listener.should_receive(:table).with(t([%w{1 2}]), 1)
|
72
|
-
@lexer.scan("| 1 | 2 |")
|
73
|
-
end
|
74
|
-
|
75
|
-
it "should parse a 1x2 table without spaces and newline" do
|
76
|
-
@listener.should_receive(:table).with(t([%w{1 2}]), 1)
|
77
|
-
@lexer.scan("|1|2|\n")
|
78
|
-
end
|
79
|
-
|
80
|
-
it "should parse a row with whitespace after the rows" do
|
81
|
-
@listener.should_receive(:table).with(t([%w{1 2}, %w{a b}]), 1)
|
82
|
-
@lexer.scan("| 1 | 2 | \n | a | b | \n")
|
83
|
-
end
|
84
|
-
|
85
|
-
it "should parse a table with lots of whitespace" do
|
86
|
-
@listener.should_receive(:table).with(t([["abc", "123"]]), 1)
|
87
|
-
@lexer.scan(" \t| \t abc\t| \t123\t \t\t| \t\t \t \t\n ")
|
88
|
-
end
|
89
|
-
|
90
|
-
it "should raise LexingError for rows that aren't closed" do
|
91
|
-
lambda {
|
92
|
-
@lexer.scan("|| oh hello \n")
|
93
|
-
}.should raise_error(/Parsing error on line 1: '|| oh hello/)
|
94
|
-
end
|
95
|
-
end
|
96
|
-
end
|
97
|
-
end
|