benhamill-gherkin 2.3.5
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitattributes +2 -0
- data/.gitignore +11 -0
- data/.mailmap +2 -0
- data/.rspec +1 -0
- data/.rvmrc +1 -0
- data/Gemfile +7 -0
- data/History.txt +363 -0
- data/LICENSE +20 -0
- data/README.rdoc +149 -0
- data/Rakefile +19 -0
- data/VERSION +1 -0
- data/build_native_gems.sh +8 -0
- data/cucumber.yml +3 -0
- data/features/escaped_pipes.feature +8 -0
- data/features/feature_parser.feature +237 -0
- data/features/json_formatter.feature +377 -0
- data/features/json_parser.feature +318 -0
- data/features/native_lexer.feature +19 -0
- data/features/parser_with_native_lexer.feature +205 -0
- data/features/pretty_formatter.feature +15 -0
- data/features/step_definitions/eyeball_steps.rb +3 -0
- data/features/step_definitions/gherkin_steps.rb +29 -0
- data/features/step_definitions/json_formatter_steps.rb +28 -0
- data/features/step_definitions/json_parser_steps.rb +20 -0
- data/features/step_definitions/pretty_formatter_steps.rb +84 -0
- data/features/steps_parser.feature +46 -0
- data/features/support/env.rb +38 -0
- data/gherkin.gemspec +61 -0
- data/ikvm/.gitignore +3 -0
- data/java/.gitignore +5 -0
- data/java/src/main/java/gherkin/lexer/i18n/.gitignore +1 -0
- data/java/src/main/resources/gherkin/.gitignore +1 -0
- data/js/lib/gherkin/lexer/i18n/ar.js +1094 -0
- data/js/lib/gherkin/lexer/i18n/bg.js +1308 -0
- data/js/lib/gherkin/lexer/i18n/ca.js +1236 -0
- data/js/lib/gherkin/lexer/i18n/cs.js +1090 -0
- data/js/lib/gherkin/lexer/i18n/cy_gb.js +958 -0
- data/js/lib/gherkin/lexer/i18n/da.js +974 -0
- data/js/lib/gherkin/lexer/i18n/de.js +1082 -0
- data/js/lib/gherkin/lexer/i18n/en.js +965 -0
- data/js/lib/gherkin/lexer/i18n/en_au.js +902 -0
- data/js/lib/gherkin/lexer/i18n/en_lol.js +859 -0
- data/js/lib/gherkin/lexer/i18n/en_pirate.js +1136 -0
- data/js/lib/gherkin/lexer/i18n/en_scouse.js +1289 -0
- data/js/lib/gherkin/lexer/i18n/en_tx.js +942 -0
- data/js/lib/gherkin/lexer/i18n/eo.js +916 -0
- data/js/lib/gherkin/lexer/i18n/es.js +1049 -0
- data/js/lib/gherkin/lexer/i18n/et.js +915 -0
- data/js/lib/gherkin/lexer/i18n/fi.js +894 -0
- data/js/lib/gherkin/lexer/i18n/fr.js +1116 -0
- data/js/lib/gherkin/lexer/i18n/he.js +1044 -0
- data/js/lib/gherkin/lexer/i18n/hr.js +994 -0
- data/js/lib/gherkin/lexer/i18n/hu.js +1043 -0
- data/js/lib/gherkin/lexer/i18n/id.js +884 -0
- data/js/lib/gherkin/lexer/i18n/it.js +1007 -0
- data/js/lib/gherkin/lexer/i18n/ja.js +1344 -0
- data/js/lib/gherkin/lexer/i18n/ko.js +1028 -0
- data/js/lib/gherkin/lexer/i18n/lt.js +972 -0
- data/js/lib/gherkin/lexer/i18n/lu.js +1057 -0
- data/js/lib/gherkin/lexer/i18n/lv.js +1092 -0
- data/js/lib/gherkin/lexer/i18n/nl.js +1036 -0
- data/js/lib/gherkin/lexer/i18n/no.js +986 -0
- data/js/lib/gherkin/lexer/i18n/pl.js +1140 -0
- data/js/lib/gherkin/lexer/i18n/pt.js +1000 -0
- data/js/lib/gherkin/lexer/i18n/ro.js +1089 -0
- data/js/lib/gherkin/lexer/i18n/ru.js +1560 -0
- data/js/lib/gherkin/lexer/i18n/sk.js +972 -0
- data/js/lib/gherkin/lexer/i18n/sr_cyrl.js +1728 -0
- data/js/lib/gherkin/lexer/i18n/sr_latn.js +1220 -0
- data/js/lib/gherkin/lexer/i18n/sv.js +997 -0
- data/js/lib/gherkin/lexer/i18n/tr.js +1014 -0
- data/js/lib/gherkin/lexer/i18n/uk.js +1572 -0
- data/js/lib/gherkin/lexer/i18n/uz.js +1302 -0
- data/js/lib/gherkin/lexer/i18n/vi.js +1124 -0
- data/js/lib/gherkin/lexer/i18n/zh_cn.js +902 -0
- data/js/lib/gherkin/lexer/i18n/zh_tw.js +940 -0
- data/lib/.gitignore +4 -0
- data/lib/gherkin.rb +2 -0
- data/lib/gherkin/c_lexer.rb +17 -0
- data/lib/gherkin/formatter/ansi_escapes.rb +95 -0
- data/lib/gherkin/formatter/argument.rb +16 -0
- data/lib/gherkin/formatter/escaping.rb +15 -0
- data/lib/gherkin/formatter/filter_formatter.rb +136 -0
- data/lib/gherkin/formatter/hashable.rb +19 -0
- data/lib/gherkin/formatter/json_formatter.rb +102 -0
- data/lib/gherkin/formatter/line_filter.rb +26 -0
- data/lib/gherkin/formatter/model.rb +236 -0
- data/lib/gherkin/formatter/pretty_formatter.rb +243 -0
- data/lib/gherkin/formatter/regexp_filter.rb +21 -0
- data/lib/gherkin/formatter/step_printer.rb +17 -0
- data/lib/gherkin/formatter/tag_count_formatter.rb +47 -0
- data/lib/gherkin/formatter/tag_filter.rb +19 -0
- data/lib/gherkin/i18n.rb +175 -0
- data/lib/gherkin/i18n.yml +588 -0
- data/lib/gherkin/json_parser.rb +137 -0
- data/lib/gherkin/lexer/i18n_lexer.rb +47 -0
- data/lib/gherkin/listener/event.rb +45 -0
- data/lib/gherkin/listener/formatter_listener.rb +113 -0
- data/lib/gherkin/native.rb +7 -0
- data/lib/gherkin/native/ikvm.rb +55 -0
- data/lib/gherkin/native/java.rb +55 -0
- data/lib/gherkin/native/null.rb +9 -0
- data/lib/gherkin/parser/meta.txt +5 -0
- data/lib/gherkin/parser/parser.rb +164 -0
- data/lib/gherkin/parser/root.txt +11 -0
- data/lib/gherkin/parser/steps.txt +4 -0
- data/lib/gherkin/rb_lexer.rb +8 -0
- data/lib/gherkin/rb_lexer/.gitignore +1 -0
- data/lib/gherkin/rb_lexer/README.rdoc +8 -0
- data/lib/gherkin/rubify.rb +24 -0
- data/lib/gherkin/tag_expression.rb +62 -0
- data/lib/gherkin/version.rb +3 -0
- data/ragel/i18n/.gitignore +1 -0
- data/ragel/lexer.c.rl.erb +439 -0
- data/ragel/lexer.java.rl.erb +208 -0
- data/ragel/lexer.rb.rl.erb +167 -0
- data/ragel/lexer_common.rl.erb +50 -0
- data/spec/gherkin/c_lexer_spec.rb +21 -0
- data/spec/gherkin/fixtures/1.feature +8 -0
- data/spec/gherkin/fixtures/comments_in_table.feature +9 -0
- data/spec/gherkin/fixtures/complex.feature +45 -0
- data/spec/gherkin/fixtures/complex.json +143 -0
- data/spec/gherkin/fixtures/complex_for_filtering.feature +60 -0
- data/spec/gherkin/fixtures/complex_with_tags.feature +61 -0
- data/spec/gherkin/fixtures/dos_line_endings.feature +45 -0
- data/spec/gherkin/fixtures/hantu_pisang.feature +35 -0
- data/spec/gherkin/fixtures/i18n_fr.feature +14 -0
- data/spec/gherkin/fixtures/i18n_no.feature +7 -0
- data/spec/gherkin/fixtures/i18n_zh-CN.feature +9 -0
- data/spec/gherkin/fixtures/scenario_outline_with_tags.feature +13 -0
- data/spec/gherkin/fixtures/scenario_without_steps.feature +5 -0
- data/spec/gherkin/fixtures/simple_with_comments.feature +7 -0
- data/spec/gherkin/fixtures/simple_with_tags.feature +11 -0
- data/spec/gherkin/fixtures/with_bom.feature +3 -0
- data/spec/gherkin/formatter/ansi_escapes_spec.rb +19 -0
- data/spec/gherkin/formatter/filter_formatter_spec.rb +165 -0
- data/spec/gherkin/formatter/model_spec.rb +28 -0
- data/spec/gherkin/formatter/pretty_formatter_spec.rb +158 -0
- data/spec/gherkin/formatter/spaces.feature +9 -0
- data/spec/gherkin/formatter/step_printer_spec.rb +55 -0
- data/spec/gherkin/formatter/tabs.feature +9 -0
- data/spec/gherkin/formatter/tag_count_formatter_spec.rb +30 -0
- data/spec/gherkin/i18n_spec.rb +152 -0
- data/spec/gherkin/java_lexer_spec.rb +20 -0
- data/spec/gherkin/java_libs.rb +20 -0
- data/spec/gherkin/json_parser_spec.rb +113 -0
- data/spec/gherkin/lexer/i18n_lexer_spec.rb +43 -0
- data/spec/gherkin/output_stream_string_io.rb +20 -0
- data/spec/gherkin/parser/parser_spec.rb +16 -0
- data/spec/gherkin/rb_lexer_spec.rb +19 -0
- data/spec/gherkin/sexp_recorder.rb +56 -0
- data/spec/gherkin/shared/lexer_group.rb +593 -0
- data/spec/gherkin/shared/py_string_group.rb +153 -0
- data/spec/gherkin/shared/row_group.rb +125 -0
- data/spec/gherkin/shared/tags_group.rb +54 -0
- data/spec/gherkin/tag_expression_spec.rb +137 -0
- data/spec/spec_helper.rb +69 -0
- data/tasks/bench.rake +184 -0
- data/tasks/bench/feature_builder.rb +49 -0
- data/tasks/bench/generated/.gitignore +1 -0
- data/tasks/bench/null_listener.rb +4 -0
- data/tasks/compile.rake +102 -0
- data/tasks/cucumber.rake +20 -0
- data/tasks/gems.rake +35 -0
- data/tasks/ikvm.rake +79 -0
- data/tasks/ragel_task.rb +70 -0
- data/tasks/rdoc.rake +9 -0
- data/tasks/release.rake +30 -0
- data/tasks/rspec.rake +8 -0
- metadata +609 -0
data/.gitattributes
ADDED
data/.gitignore
ADDED
data/.mailmap
ADDED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm @cucumber --create
|
data/Gemfile
ADDED
data/History.txt
ADDED
@@ -0,0 +1,363 @@
|
|
1
|
+
== 2.3.5 (2011-03-20)
|
2
|
+
|
3
|
+
=== Changes
|
4
|
+
* Relaxed gem dependencies to use >=. (Rob Slifka, Aslak Hellesøy)
|
5
|
+
|
6
|
+
== 2.3.4 (2011-03-10)
|
7
|
+
|
8
|
+
=== Changes
|
9
|
+
* Fixing C90 errors on Ubuntu Natty (#92 Colin Dean)
|
10
|
+
* Romanian (ro) language update, extracted from a real-world project. (Iulian Dogariu)
|
11
|
+
|
12
|
+
== 2.3.3 (2010-12-26)
|
13
|
+
|
14
|
+
=== Changes
|
15
|
+
* No more dependencies on external ANSI escape libraries (Ruby:term-ansicolor, Java:Jansi). DIY is better! (Aslak Hellesøy)
|
16
|
+
* Added duration (in millseconds) to Result. (Aslak Hellesøy)
|
17
|
+
* Additional Polish aliases (Mike Połtyn)
|
18
|
+
|
19
|
+
== 2.3.2 (2010-12-05)
|
20
|
+
|
21
|
+
(Somehow 2.3.1 was released improperly shortly after 2.3.0 - not sure what fixes went into that!)
|
22
|
+
|
23
|
+
=== Bugfixes
|
24
|
+
* Preserve whitespace in descriptions. Leading whitespace in descriptions are stripped upto preceding keyword + 2 spaces (#87 Matt Wynne, Gregory Hnatiuk, Aslak Hellesøy)
|
25
|
+
* Fix incorrect indentation of Examples descriptions (Gregory Hnatiuk)
|
26
|
+
* Can't define new line characters in Example Table Cell's Content. (#85 George Montana Harkin, Aslak Hellesøy)
|
27
|
+
|
28
|
+
== 2.3.0 (2010-11-12)
|
29
|
+
|
30
|
+
=== New Features
|
31
|
+
* New aliases for Scenario Outline in Swedish, Norwegian and English. (Peter Krantz, Aslak Hellesøy)
|
32
|
+
* Improved build documentation for people who want to contribute. (Aslak Hellesøy)
|
33
|
+
* Results can now be outputted/parsed in JSON. (Aslak Hellesøy)
|
34
|
+
* JSON output now contains optional "match", "result" and "embeddings" elements underneath each step. (Aslak Hellesøy)
|
35
|
+
* Added support for Base64 encoded embeddings in JSON representation. Useful for screenshots etc. (Aslak Hellesøy)
|
36
|
+
|
37
|
+
== 2.2.9 (2010-10-15)
|
38
|
+
|
39
|
+
=== New Features
|
40
|
+
* PrettyFormatter can format features both with and without ANSI Colors. Using Jansi on Java. (Aslak Hellesøy)
|
41
|
+
* Extended Java Formatter API with a steps(List<Step>) method for better reporting in Java (Aslak Hellesøy)
|
42
|
+
|
43
|
+
== 2.2.8 (2010-10-04)
|
44
|
+
|
45
|
+
=== Removed Features
|
46
|
+
* Trollop based CLI - didn't find a good use for it yet. (Aslak Hellesøy)
|
47
|
+
|
48
|
+
== 2.2.7 (2010-10-01)
|
49
|
+
|
50
|
+
=== Bugfixes
|
51
|
+
* I18n.getCodeKeywords() on Java didn't strip '!'. Not anymore. (Aslak Hellesøy)
|
52
|
+
|
53
|
+
== 2.2.6 (2010-10-01)
|
54
|
+
|
55
|
+
=== Bugfixes
|
56
|
+
* I18n.getCodeKeywords() on Java included '*'. Not anymore. (Aslak Hellesøy)
|
57
|
+
|
58
|
+
== 2.2.5 (2010-10-01)
|
59
|
+
|
60
|
+
=== New Features
|
61
|
+
* Gherkin will scan all top comments for the language comment. (Aslak Hellesøy)
|
62
|
+
|
63
|
+
== 2.2.4 (2010-09-22)
|
64
|
+
|
65
|
+
=== Bugfixes
|
66
|
+
* C99 features used by gherkin code (#75 Graham Agnew)
|
67
|
+
|
68
|
+
== 2.2.3 (2010-09-21)
|
69
|
+
|
70
|
+
=== Bugfixes
|
71
|
+
* Add back missing development dependency on cucumber (Aslak Hellesøy)
|
72
|
+
|
73
|
+
== 2.2.2 (2010-09-21)
|
74
|
+
|
75
|
+
=== New Features
|
76
|
+
* Use json instead of json_pure (Aslak Hellesøy)
|
77
|
+
* JSON formatter and parser can now omit JSON serialization (for speed) and work directly on objects (Aslak Hellesøy)
|
78
|
+
|
79
|
+
== 2.2.1 (2010-09-12)
|
80
|
+
|
81
|
+
=== New Features
|
82
|
+
* Windows gems are now built against 1.8.6-p287 and 1.9.1-p243, on both mswin32 and mingw32, and should work on 1.8.6, 1.8.7, 1.9.1 and 1.9.2 versions of rubyinstaller.org as well as older windows rubies. (Aslak Hellesøy)
|
83
|
+
|
84
|
+
=== Changed features
|
85
|
+
* Build system no longer uses Jeweler - only Rake, Bundler and Rubygems (Aslak Hellesøy)
|
86
|
+
|
87
|
+
== 2.2.0 (2010-07-26)
|
88
|
+
|
89
|
+
This release breaks some APIs since the previous 2.1.5 release. If you install gherkin 2.2.0 you must also upgrade to
|
90
|
+
Cucumber 0.9.0.
|
91
|
+
|
92
|
+
=== Bugfixes
|
93
|
+
* I18nLexer doesn't recognise language header with \r\n on OS X. (#70 Aslak Hellesøy)
|
94
|
+
|
95
|
+
=== New Features
|
96
|
+
* Pure Java FilterFormatter. (Aslak Hellesøy)
|
97
|
+
* Pure Java JSONFormatter. (Aslak Hellesøy)
|
98
|
+
|
99
|
+
=== Changed Features
|
100
|
+
* All formatter events take exactly one argument. Each argument is a single object with all data. (Aslak Hellesøy)
|
101
|
+
* Several java classes have moved to a different package in order to improve separation of concerns. (Aslak Hellesøy)
|
102
|
+
|
103
|
+
== 2.1.5 (2010-07-17)
|
104
|
+
|
105
|
+
=== Bugfixes
|
106
|
+
* Line filter works on JRuby with Scenarios without steps. (Aslak Hellesøy)
|
107
|
+
|
108
|
+
=== Changed Features
|
109
|
+
* The JSON schema now puts background inside the "elements" Array. Makes parsing simpler. (Aslak Hellesøy)
|
110
|
+
|
111
|
+
== 2.1.4 (2010-07-14)
|
112
|
+
|
113
|
+
=== Bugfixes
|
114
|
+
* #steps fails on JRuby with 2.1.3 (#68 Aslak Hellesøy)
|
115
|
+
|
116
|
+
== 2.1.3 (2010-07-14)
|
117
|
+
|
118
|
+
=== Bugfixes
|
119
|
+
* Examples are not cleared when an ignored Scenario Outline/Examples is followed by a Scenario. (#67 Aslak Hellesøy)
|
120
|
+
|
121
|
+
== 2.1.2 (2010-07-13)
|
122
|
+
|
123
|
+
=== Bugfixes
|
124
|
+
* Fix some missing require statements that surfaced when gherkin was used outside Cucumber. (Aslak Hellesøy)
|
125
|
+
|
126
|
+
== 2.1.1 (2010-07-12)
|
127
|
+
|
128
|
+
The previous release had a missing gherkin.jar in the jruby gem. This release fixes that. For good this time!
|
129
|
+
|
130
|
+
== 2.1.0 (2010-07-12)
|
131
|
+
|
132
|
+
=== New Features
|
133
|
+
* Pirate! (anteaya)
|
134
|
+
* Tag limits for negative tags (Aslak Hellesøy)
|
135
|
+
|
136
|
+
=== Changed Features
|
137
|
+
* The formatter API has changed and the listener API is now only used internally. (Aslak Hellesøy)
|
138
|
+
|
139
|
+
=== Removed Features
|
140
|
+
* FilterListener has been replaced with FilterFormatter. Currently only in Ruby (no Java impl yet). (Aslak Hellesøy)
|
141
|
+
|
142
|
+
== 2.0.2 (2010-06-16)
|
143
|
+
|
144
|
+
=== New Features
|
145
|
+
* New JSON Lexer. (Gregory Hnatiuk)
|
146
|
+
|
147
|
+
=== Bugfixes
|
148
|
+
* Fixed incorrect indentation for descriptions in Java. (Aslak Hellesøy)
|
149
|
+
* Fixed support for xx-yy languages and Hebrew and Indonesian (JDK bugs). (Aslak Hellesøy)
|
150
|
+
|
151
|
+
=== Changed Features
|
152
|
+
* Examples are now nested inside the Scenario Outline in the JSON format. (Gregory Hnatiuk)
|
153
|
+
|
154
|
+
== 2.0.1 (2010-06-15)
|
155
|
+
|
156
|
+
The previous release had a missing gherkin.jar in the jruby gem. This release fixes that.
|
157
|
+
|
158
|
+
== 2.0.0 (2010-06-15)
|
159
|
+
|
160
|
+
We're breaking the old listener API in this release, and added a new JSON formatter,
|
161
|
+
which calls for a new major version.
|
162
|
+
|
163
|
+
=== New Features
|
164
|
+
* New JSON formatter. (Aslak Hellesøy, Joseph Wilk)
|
165
|
+
* New synonyms for Hungarian (Bence Golda)
|
166
|
+
* Upgraded to use RSpec 2.0.0 (Aslak Hellesøy)
|
167
|
+
|
168
|
+
=== Bugfixes
|
169
|
+
* undefined method `<=>' on JRuby (#52 Aslak Hellesøy)
|
170
|
+
* Include link to explanation of LexingError (Mike Sassak)
|
171
|
+
|
172
|
+
=== Changed Features
|
173
|
+
* The formatter API has completely changed. There is a Gherkin Listener API and a Formatter API.
|
174
|
+
The FormatterListener acts as an adapter between them. (Aslak Hellesøy)
|
175
|
+
* The listener API now has an additional argument for description (text following the first line of Feature:, Scenario: etc.) (Gregroy Hnatiuk, Matt Wynne)
|
176
|
+
|
177
|
+
== 1.0.30 (2010-05-18)
|
178
|
+
|
179
|
+
=== New Features
|
180
|
+
* Native gems for IronRuby. Bundles IKVM OpenJDK dlls as well as ikvmc-compiled gherkin.dll. Experimental! (Aslak Hellesøy)
|
181
|
+
|
182
|
+
== 1.0.29 (2010-05-18)
|
183
|
+
|
184
|
+
=== Bugfixes
|
185
|
+
* Use I18n.class' class loader instead of context class loader to load Java lexers. Hoping this fixes loading bug for good. (Aslak Hellesøy)
|
186
|
+
|
187
|
+
== 1.0.28 (2010-05-18)
|
188
|
+
|
189
|
+
=== Bugfixes
|
190
|
+
* Use context class loader instead of boot class loader to load Java lexers. (Aslak Hellesøy)
|
191
|
+
* Only add gcc flags when the compiler is gcc. (#60 Aslak Hellesøy, Christian Höltje)
|
192
|
+
|
193
|
+
== 1.0.27 (2010-05-17)
|
194
|
+
|
195
|
+
=== New Features
|
196
|
+
* Table cells can now contain escaped bars - \| and escaped backslashes - \\. (#48. Gregory Hnatiuk, Aslak Hellesøy)
|
197
|
+
* Luxemburgish (lu) added. (Christoph König)
|
198
|
+
|
199
|
+
== 1.0.26 (2010-05-09)
|
200
|
+
|
201
|
+
=== New Features
|
202
|
+
* Ignore the BOM that many retarded Windows editors insist on sticking in the beginning of a file. (Aslak Hellesøy)
|
203
|
+
|
204
|
+
== 1.0.25 (2010-05-02)
|
205
|
+
|
206
|
+
=== Bugfixes
|
207
|
+
* Allow fallback to a slower ruby lexer if the C lexer can't be loaded for some reason.
|
208
|
+
* Can't run specs in gherkin 1.0.24 (#59 Aslak Hellesøy)
|
209
|
+
|
210
|
+
== 1.0.24 (2010-05-02)
|
211
|
+
|
212
|
+
=== Bugfixes
|
213
|
+
* hard tabs crazy indentation for pystrings in formatter (#55 Aslak Hellesøy)
|
214
|
+
|
215
|
+
== 1.0.23 (2010-05-02)
|
216
|
+
|
217
|
+
=== Changed Features
|
218
|
+
* Java API now uses camelCased method names instead of underscored (more Java-like) (Aslak Hellesøy)
|
219
|
+
|
220
|
+
== 1.0.22 (2010-04-28)
|
221
|
+
|
222
|
+
=== Bugfixes
|
223
|
+
* Make prebuilt binaries work on both Ruby 1.8.x and 1.9.x on Windows (#54 Luis Lavena, Aslak Hellesøy)
|
224
|
+
|
225
|
+
== 1.0.21 (2010-04-27)
|
226
|
+
|
227
|
+
=== Bugfixes
|
228
|
+
* Fix compile warning on ruby 1.9.2dev (2009-07-18 trunk 24186) (#53 Aslak Hellesøy)
|
229
|
+
|
230
|
+
== 1.0.20 (2010-04-20)
|
231
|
+
|
232
|
+
=== Bugfixes
|
233
|
+
* The gherkin CLI is working again (Gregory Hnatiuk)
|
234
|
+
|
235
|
+
== 1.0.19 (2010-04-20)
|
236
|
+
|
237
|
+
=== New Features
|
238
|
+
* Works with JRuby 1.5.0.RC1 (Aslak Hellesøy)
|
239
|
+
|
240
|
+
=== Changed Features
|
241
|
+
* I18n.code_keywords now return And and But as well, making Cucumber StepDefs a little more flexible (Aslak Hellesøy)
|
242
|
+
|
243
|
+
== 1.0.18 (2010-04-20)
|
244
|
+
|
245
|
+
=== Bugfixes
|
246
|
+
* Explicitly use UTF-8 encoding when scanning source with Java lexer. (Aslak Hellesøy)
|
247
|
+
|
248
|
+
== 1.0.17 (2010-04-19)
|
249
|
+
|
250
|
+
=== Bugfixes
|
251
|
+
* Gherkin::I18n.keyword_regexp was broken (used for 3rd party code generation). (#51 Aslak Hellesøy)
|
252
|
+
|
253
|
+
== 1.0.16 (2010-04-19)
|
254
|
+
(Something went wrong when releasing 1.0.15)
|
255
|
+
|
256
|
+
=== Bugfixes
|
257
|
+
* Reduced risk of halfway botched releases. (Aslak Hellesøy)
|
258
|
+
|
259
|
+
== 1.0.15 (2010-04-19)
|
260
|
+
|
261
|
+
=== New Features
|
262
|
+
* Implemented more functionality in I18n.java. (Aslak Hellesøy)
|
263
|
+
|
264
|
+
=== Changed Features
|
265
|
+
* Java methods are no longer throwing Exception (but RuntimeException). (Aslak Hellesøy)
|
266
|
+
|
267
|
+
== 1.0.14 (2010-04-18)
|
268
|
+
(Something went wrong when releasing 1.0.13)
|
269
|
+
|
270
|
+
== 1.0.13 (2010-04-18)
|
271
|
+
|
272
|
+
=== New Features
|
273
|
+
* Filter on Background name. (Aslak Hellesøy)
|
274
|
+
|
275
|
+
== 1.0.12 (2010-04-18)
|
276
|
+
|
277
|
+
=== Bugfixes
|
278
|
+
* Fixed incorrect filtering of pystring in Background. (Mike Sassak)
|
279
|
+
|
280
|
+
== 1.0.11 (2010-04-16)
|
281
|
+
|
282
|
+
=== Bugfixes
|
283
|
+
* Fixed bad packaging (C files were not packaged in POSIX gem)
|
284
|
+
|
285
|
+
== 1.0.10 (2010-04-16)
|
286
|
+
|
287
|
+
=== New Features
|
288
|
+
* Added Esperanto and added a Russian synonym for Feature. (Antono Vasiljev)
|
289
|
+
* Pure Java implementation of FilterListener and TagExpression (Mike Gaffney, Aslak Hellesøy)
|
290
|
+
|
291
|
+
=== Changed Features
|
292
|
+
* TagExpression takes array args instead of varargs. (Aslak Hellesøy)
|
293
|
+
|
294
|
+
== 1.0.9 (2010-04-12)
|
295
|
+
|
296
|
+
=== Bugfixes
|
297
|
+
* Triple escaped quotes (\"\"\") in PyStrings are unescaped to """. (Aslak Hellesøy)
|
298
|
+
|
299
|
+
== 1.0.8 (2010-04-10)
|
300
|
+
|
301
|
+
=== Bugfixes
|
302
|
+
* Removed illegal comma from Ukrainian synonym. (Aslak Hellesøy)
|
303
|
+
|
304
|
+
== 1.0.7 (2010-04-10)
|
305
|
+
|
306
|
+
=== Bugfixes
|
307
|
+
* Fixed problems with packaging of 1.0.6 release. (Aslak Hellesøy)
|
308
|
+
|
309
|
+
== 1.0.6 (2010-04-10)
|
310
|
+
|
311
|
+
=== New Features
|
312
|
+
* Fully automated release process. (Aslak Hellesøy)
|
313
|
+
|
314
|
+
=== Changed Features
|
315
|
+
* Made generated classes use a more uniform naming convention. (Aslak Hellesøy)
|
316
|
+
|
317
|
+
=== Removed Features
|
318
|
+
* Removed C# port, obsoleted by IKVM build from 1.0.5. (Aslak Hellesøy)
|
319
|
+
|
320
|
+
== 1.0.5 (2010-04-08)
|
321
|
+
|
322
|
+
=== New Features
|
323
|
+
* New .NET build of gherkin - an ikvmc build of gherkin.jar to gherkin.dll. (Aslak Hellesøy)
|
324
|
+
|
325
|
+
=== Bugfixes
|
326
|
+
* Made parsers reusable so that the same instance can parse several features. (Aslak Hellesøy)
|
327
|
+
|
328
|
+
== 1.0.4 (2010-04-07)
|
329
|
+
|
330
|
+
=== New features
|
331
|
+
* Pure java releases of Gherkin at http://cukes.info/maven
|
332
|
+
* A FilterListener in Ruby that is the last missing piece to plug Gherkin into Cucumber. (Gregory Hnatiuk, Aslak Hellesøy, Matt Wynne, Mike Sassak)
|
333
|
+
|
334
|
+
=== Changed features
|
335
|
+
* The Lexer now emits the '@' for tags. (Aslak Hellesøy)
|
336
|
+
|
337
|
+
== 1.0.3 (2010-03-31)
|
338
|
+
|
339
|
+
=== Bugfixes
|
340
|
+
* The C lexer correctly instantiates a new array for each table, instead of reusing the old one. (Aslak Hellesøy)
|
341
|
+
* Emit keywords with space instead of stripping (< keywords are emmitted without space) (Aslak Hellesøy)
|
342
|
+
* gherkin reformat now prints comments, and does it with proper indentation (Aslak Hellesøy)
|
343
|
+
* .NET resource files are now automatically copied into the .dll (#46 Aslak Hellesøy)
|
344
|
+
|
345
|
+
=== New features
|
346
|
+
* The Pure Java implementation now has a simple main method that pretty prints a feature. (#39 Aslak Hellesøy)
|
347
|
+
* Writing code generated i18n syntax highlighters for Gherkin is a lot easier thanks to several convenience methods in Gherkin::I18n. (Aslak Hellesøy)
|
348
|
+
* .NET (C#) port (#36, #37 Attila Sztupak)
|
349
|
+
* Tables parsed and sent by row rather than by table. (Mike Sassak)
|
350
|
+
|
351
|
+
=== Changed features
|
352
|
+
* Switced to ISO 639-1 (language) and ISO 3166 alpha-2 (region - if applicable). Applies to Catalan,
|
353
|
+
Swedish, Welsh, Romanian and Serbian. (Aslak Hellesøy)
|
354
|
+
|
355
|
+
== 1.0.2 (2009-12-30)
|
356
|
+
|
357
|
+
=== Bugfixes
|
358
|
+
* Build passes on Ruby 1.9.2 (Aslak Hellesøy)
|
359
|
+
|
360
|
+
=== New features
|
361
|
+
* New command line based on trollop. Commands: reformat, stats. (Aslak Hellesøy)
|
362
|
+
* I18nLexer#scan sets #language to the I18n for the language scanned (Mike Sassak)
|
363
|
+
* I18n#adverbs, brings I18n to parity with Cucumber::Parser::NaturalLanguage (Mike Sassak)
|
data/LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2009-2010 Mike Sassak, Gregory Hnatiuk, Aslak Hellesøy
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
@@ -0,0 +1,149 @@
|
|
1
|
+
= Gherkin
|
2
|
+
|
3
|
+
Fast Gherkin lexer and parser based on Ragel. Gherkin is two things:
|
4
|
+
|
5
|
+
* The language that has evolved out of the Cucumber project.
|
6
|
+
* This library
|
7
|
+
|
8
|
+
Supported platforms:
|
9
|
+
|
10
|
+
* Ruby 1.8.6-1.9.2 (MRI, JRuby, REE, Rubinius)
|
11
|
+
* Pure Java
|
12
|
+
* .NET
|
13
|
+
* IronRuby (experimental)
|
14
|
+
* Javascript (coming soon)
|
15
|
+
|
16
|
+
== Installing the toolchain
|
17
|
+
|
18
|
+
Due to the cross-platform nature of this library, you have to install a lot of tools to build gherkin yourself.
|
19
|
+
In order to make it easier for occasional contributors to get the development environment up and running, you don't
|
20
|
+
have to install everything up front. The build scripts should tell you if you are missing something. For example,
|
21
|
+
you shouldn't have to install MinGW to build windows binaries if you are a Linux user and just want to fix a bug in
|
22
|
+
the C code.
|
23
|
+
|
24
|
+
=== Common dependencies
|
25
|
+
|
26
|
+
These are the minimal tools you need to install:
|
27
|
+
|
28
|
+
* Ragel (brew install ragel or apt-get install ragel)
|
29
|
+
* Ruby (any version should do).
|
30
|
+
* A clone of the cucumber git repo to a "cucumber" sibling folder of your gherkin folder. (Only needed to run cucumber tests)
|
31
|
+
* RVM (you may not need this if you are only building for a single platform)
|
32
|
+
|
33
|
+
With this minimal toolchain installed, install Ruby gems needed by the build:
|
34
|
+
|
35
|
+
gem install bundler
|
36
|
+
bundle install
|
37
|
+
|
38
|
+
Running RSpec and Cucumber tests
|
39
|
+
|
40
|
+
rake clean spec cucumber
|
41
|
+
|
42
|
+
If the RL_LANGS environment variable is set, only the parsers for the languages specified there will be built.
|
43
|
+
E.g. in Bash, export RL_LANGS="en,fr,no". This can be quite helpful when modifying the Ragel grammar.
|
44
|
+
|
45
|
+
See subsections for building for a specific platform.
|
46
|
+
|
47
|
+
=== MRI, REE or Rubinius
|
48
|
+
|
49
|
+
You'll need GCC installed.
|
50
|
+
|
51
|
+
Build the gem with:
|
52
|
+
|
53
|
+
rake build
|
54
|
+
|
55
|
+
=== Pure Java and JRuby
|
56
|
+
|
57
|
+
You must install JRuby to build the pure Java jar or the JRuby gem:
|
58
|
+
|
59
|
+
rvm install jruby
|
60
|
+
rvm use jruby
|
61
|
+
rvm gemset create cucumber
|
62
|
+
rvm use @cucumber
|
63
|
+
gem install bundler
|
64
|
+
bundle install
|
65
|
+
|
66
|
+
Now you can build the jar with:
|
67
|
+
|
68
|
+
rake clean jar
|
69
|
+
|
70
|
+
=== .NET and IronRuby
|
71
|
+
|
72
|
+
You must install Mono and IKVM to build the pure .NET dll and the IronRuby gem:
|
73
|
+
|
74
|
+
* Install Mono from http://www.mono-project.com/ and make sure it's on your $PATH
|
75
|
+
* Download IKVM from http://www.ikvm.net/ and extract it to /usr/local/ikvm so that you have a /usr/local/ikvm/bin/ikvmc.exe
|
76
|
+
|
77
|
+
Now you can build the .NET dll with:
|
78
|
+
|
79
|
+
rake ikvm
|
80
|
+
|
81
|
+
=== MinGW Rubies (for Windows gems)
|
82
|
+
|
83
|
+
In order to build Windows binaries (so we can release Windows gems from OS X/Linux) we need to set up rake-compiler.
|
84
|
+
|
85
|
+
http://github.com/luislavena/rake-compiler/
|
86
|
+
|
87
|
+
Now, let's install MinGW...
|
88
|
+
|
89
|
+
I didn't want to install macports (I'm on homebrew) and I couldn't figure out how to build MinGW myself. I got prebuilt binaries (version 4.3.0):
|
90
|
+
http://crossgcc.rts-software.org/doku.php - just add the bin folder to your PATH
|
91
|
+
|
92
|
+
You must install MinGW rubies to build gems fow Windows.
|
93
|
+
First you need to download and install MinGW:
|
94
|
+
|
95
|
+
OS X users can get it from http://crossgcc.rts-software.org/doku.php
|
96
|
+
Once you have installed it, add this to your .bashrc:
|
97
|
+
|
98
|
+
export PATH=$PATH:/usr/local/i386-mingw32-4.3.0/bin
|
99
|
+
|
100
|
+
Now, let's install some rubies.
|
101
|
+
Make sure you have openssl installed first.
|
102
|
+
|
103
|
+
brew install openssl
|
104
|
+
|
105
|
+
# 1.8.6
|
106
|
+
# Don't worry about inconsistent patchlevels here. It works.
|
107
|
+
rvm install 1.8.6-p399
|
108
|
+
rvm use 1.8.6-p399
|
109
|
+
rvm gemset create cucumber
|
110
|
+
rvm use @cucumber
|
111
|
+
gem install bundler
|
112
|
+
bundle install
|
113
|
+
rake-compiler cross-ruby VERSION=1.8.6-p287
|
114
|
+
|
115
|
+
# 1.9.1
|
116
|
+
# Later 1.9.1 patch levels or 1.9.2 don't compile on mingw.
|
117
|
+
# The compiled binaries should still work on 1.9.2
|
118
|
+
rvm install 1.9.1-p243
|
119
|
+
rvm use 1.9.1-p243
|
120
|
+
rvm gemset create cucumber
|
121
|
+
rvm use @cucumber
|
122
|
+
gem install bundler
|
123
|
+
bundle install
|
124
|
+
rake-compiler cross-ruby VERSION=1.9.1-p243
|
125
|
+
|
126
|
+
== Release process
|
127
|
+
|
128
|
+
* Bump version in the VERSION file and:
|
129
|
+
** java/pom.xml
|
130
|
+
** ikvm/Gherkin/Gherkin.csproj
|
131
|
+
* Commit changes.
|
132
|
+
* rake gems:prepare && ./build_native_gems.sh && rake release:ALL
|
133
|
+
* Announce on Cucumber list, IRC and Twitter.
|
134
|
+
|
135
|
+
== Note on Patches/Pull Requests
|
136
|
+
|
137
|
+
* Fork the project.
|
138
|
+
* Run rake ragel:rb to generate all the I18n lexers
|
139
|
+
* Make your feature addition or bug fix.
|
140
|
+
* Add tests for it. This is important so I don't break it in a
|
141
|
+
future version unintentionally.
|
142
|
+
* Commit, do not mess with Rakefile, VERSION, or History.txt.
|
143
|
+
(if you want to have your own version, that is fine but
|
144
|
+
bump version in a commit by itself I can ignore when I pull)
|
145
|
+
* Send me a pull request. Bonus points for topic branches.
|
146
|
+
|
147
|
+
== Copyright
|
148
|
+
|
149
|
+
Copyright (c) 2009-2010 Mike Sassak, Gregory Hnatiuk, Aslak Hellesøy. See LICENSE for details.
|