cuke_modeler 1.4.0 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +329 -0
- data/LICENSE.txt +1 -1
- data/README.md +25 -18
- data/cuke_modeler.gemspec +15 -9
- data/lib/cuke_modeler/adapters/gherkin_10_adapter.rb +12 -0
- data/lib/cuke_modeler/adapters/gherkin_11_adapter.rb +12 -0
- data/lib/cuke_modeler/adapters/gherkin_12_adapter.rb +12 -0
- data/lib/cuke_modeler/adapters/gherkin_13_adapter.rb +12 -0
- data/lib/cuke_modeler/adapters/{gherkin_6_adapter.rb → gherkin_9_adapter.rb} +75 -64
- data/lib/cuke_modeler/containing.rb +16 -0
- data/lib/cuke_modeler/described.rb +1 -0
- data/lib/cuke_modeler/models/background.rb +1 -1
- data/lib/cuke_modeler/models/cell.rb +1 -1
- data/lib/cuke_modeler/models/comment.rb +1 -1
- data/lib/cuke_modeler/models/directory.rb +2 -2
- data/lib/cuke_modeler/models/doc_string.rb +1 -1
- data/lib/cuke_modeler/models/example.rb +1 -1
- data/lib/cuke_modeler/models/feature.rb +1 -1
- data/lib/cuke_modeler/models/feature_file.rb +2 -2
- data/lib/cuke_modeler/models/outline.rb +1 -1
- data/lib/cuke_modeler/models/row.rb +1 -1
- data/lib/cuke_modeler/models/scenario.rb +1 -1
- data/lib/cuke_modeler/models/step.rb +32 -3
- data/lib/cuke_modeler/models/table.rb +1 -1
- data/lib/cuke_modeler/models/tag.rb +1 -1
- data/lib/cuke_modeler/named.rb +1 -0
- data/lib/cuke_modeler/nested.rb +1 -0
- data/lib/cuke_modeler/parsed.rb +1 -0
- data/lib/cuke_modeler/parsing.rb +88 -92
- data/lib/cuke_modeler/sourceable.rb +1 -0
- data/lib/cuke_modeler/stepped.rb +1 -0
- data/lib/cuke_modeler/taggable.rb +1 -0
- data/lib/cuke_modeler/version.rb +1 -1
- data/testing/cucumber/features/analysis/step_comparison.feature +25 -0
- data/testing/cucumber/features/analysis/test_comparison.feature +1 -1
- metadata +55 -142
- data/.gitignore +0 -18
- data/.simplecov +0 -7
- data/.travis.yml +0 -54
- data/Gemfile +0 -36
- data/History.md +0 -191
- data/Rakefile +0 -63
- data/appveyor.yml +0 -43
- data/lib/cuke_modeler/adapters/gherkin_2_adapter.rb +0 -273
- data/lib/cuke_modeler/adapters/gherkin_3_adapter.rb +0 -296
- data/lib/cuke_modeler/adapters/gherkin_4_adapter.rb +0 -308
- data/testing/cucumber/step_definitions/action_steps.rb +0 -13
- data/testing/cucumber/step_definitions/background_steps.rb +0 -1
- data/testing/cucumber/step_definitions/directory_steps.rb +0 -6
- data/testing/cucumber/step_definitions/doc_string_steps.rb +0 -1
- data/testing/cucumber/step_definitions/feature_file_steps.rb +0 -16
- data/testing/cucumber/step_definitions/feature_steps.rb +0 -7
- data/testing/cucumber/step_definitions/modeling_steps.rb +0 -44
- data/testing/cucumber/step_definitions/setup_steps.rb +0 -32
- data/testing/cucumber/step_definitions/step_steps.rb +0 -3
- data/testing/cucumber/step_definitions/table_steps.rb +0 -1
- data/testing/cucumber/step_definitions/tag_steps.rb +0 -3
- data/testing/cucumber/step_definitions/verification_steps.rb +0 -173
- data/testing/cucumber/support/env.rb +0 -30
- data/testing/dialect_helper.rb +0 -48
- data/testing/file_helper.rb +0 -47
- data/testing/gemfiles/gherkin2.gemfile +0 -32
- data/testing/gemfiles/gherkin3.gemfile +0 -26
- data/testing/gemfiles/gherkin4.gemfile +0 -27
- data/testing/gemfiles/gherkin5.gemfile +0 -26
- data/testing/gemfiles/gherkin6.gemfile +0 -10
- data/testing/rspec/spec/integration/background_integration_spec.rb +0 -442
- data/testing/rspec/spec/integration/cell_integration_spec.rb +0 -335
- data/testing/rspec/spec/integration/comment_integration_spec.rb +0 -177
- data/testing/rspec/spec/integration/directory_integration_spec.rb +0 -218
- data/testing/rspec/spec/integration/doc_string_integration_spec.rb +0 -402
- data/testing/rspec/spec/integration/example_integration_spec.rb +0 -741
- data/testing/rspec/spec/integration/feature_file_integration_spec.rb +0 -272
- data/testing/rspec/spec/integration/feature_integration_spec.rb +0 -650
- data/testing/rspec/spec/integration/gherkin_2_adapter_spec.rb +0 -166
- data/testing/rspec/spec/integration/gherkin_3_adapter_spec.rb +0 -166
- data/testing/rspec/spec/integration/gherkin_4_adapter_spec.rb +0 -165
- data/testing/rspec/spec/integration/gherkin_6_adapter_spec.rb +0 -166
- data/testing/rspec/spec/integration/model_integration_spec.rb +0 -15
- data/testing/rspec/spec/integration/nested_integration_spec.rb +0 -91
- data/testing/rspec/spec/integration/outline_integration_spec.rb +0 -624
- data/testing/rspec/spec/integration/parsing_integration_spec.rb +0 -117
- data/testing/rspec/spec/integration/row_integration_spec.rb +0 -291
- data/testing/rspec/spec/integration/scenario_integration_spec.rb +0 -479
- data/testing/rspec/spec/integration/shared/models_integration_specs.rb +0 -18
- data/testing/rspec/spec/integration/step_integration_spec.rb +0 -475
- data/testing/rspec/spec/integration/table_integration_spec.rb +0 -337
- data/testing/rspec/spec/integration/tag_integration_spec.rb +0 -259
- data/testing/rspec/spec/spec_helper.rb +0 -122
- data/testing/rspec/spec/unit/background_unit_spec.rb +0 -83
- data/testing/rspec/spec/unit/cell_unit_spec.rb +0 -68
- data/testing/rspec/spec/unit/comment_unit_spec.rb +0 -68
- data/testing/rspec/spec/unit/described_unit_spec.rb +0 -23
- data/testing/rspec/spec/unit/directory_unit_spec.rb +0 -127
- data/testing/rspec/spec/unit/doc_string_unit_spec.rb +0 -100
- data/testing/rspec/spec/unit/example_unit_spec.rb +0 -133
- data/testing/rspec/spec/unit/feature_file_unit_spec.rb +0 -125
- data/testing/rspec/spec/unit/feature_unit_spec.rb +0 -157
- data/testing/rspec/spec/unit/model_unit_spec.rb +0 -15
- data/testing/rspec/spec/unit/named_unit_spec.rb +0 -23
- data/testing/rspec/spec/unit/nested_unit_spec.rb +0 -43
- data/testing/rspec/spec/unit/outline_unit_spec.rb +0 -117
- data/testing/rspec/spec/unit/parsed_unit_spec.rb +0 -27
- data/testing/rspec/spec/unit/parsing_unit_spec.rb +0 -54
- data/testing/rspec/spec/unit/row_unit_spec.rb +0 -68
- data/testing/rspec/spec/unit/scenario_unit_spec.rb +0 -86
- data/testing/rspec/spec/unit/shared/bare_bones_models_unit_specs.rb +0 -14
- data/testing/rspec/spec/unit/shared/containing_models_unit_specs.rb +0 -25
- data/testing/rspec/spec/unit/shared/described_models_unit_specs.rb +0 -38
- data/testing/rspec/spec/unit/shared/keyworded_models_unit_specs.rb +0 -58
- data/testing/rspec/spec/unit/shared/models_unit_specs.rb +0 -15
- data/testing/rspec/spec/unit/shared/named_models_unit_specs.rb +0 -39
- data/testing/rspec/spec/unit/shared/nested_models_unit_specs.rb +0 -51
- data/testing/rspec/spec/unit/shared/parsed_models_unit_specs.rb +0 -39
- data/testing/rspec/spec/unit/shared/prepopulated_models_unit_specs.rb +0 -18
- data/testing/rspec/spec/unit/shared/sourced_models_unit_specs.rb +0 -39
- data/testing/rspec/spec/unit/shared/stepped_models_unit_specs.rb +0 -46
- data/testing/rspec/spec/unit/shared/stringifiable_models_unit_specs.rb +0 -18
- data/testing/rspec/spec/unit/shared/tagged_models_unit_specs.rb +0 -72
- data/testing/rspec/spec/unit/sourceable_unit_spec.rb +0 -27
- data/testing/rspec/spec/unit/step_unit_spec.rb +0 -109
- data/testing/rspec/spec/unit/stepped_unit_spec.rb +0 -23
- data/testing/rspec/spec/unit/table_unit_spec.rb +0 -77
- data/testing/rspec/spec/unit/tag_unit_spec.rb +0 -68
- data/testing/rspec/spec/unit/taggable_unit_spec.rb +0 -69
- data/testing/test_languages.json +0 -45
- data/todo.txt +0 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 12a7bac33e0fe407f250239e15637b732497d9d106893ae9d08943bb2497821c
|
4
|
+
data.tar.gz: 26e6cf550dfdec1f87109651d73c01f403a97235277497ea7dc09017448a9a7c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 129e84d0e7d10a7b217c040d7f6cab3590096e76345f679f61a51b3833c0c771fbb2299d997fd319851042d4a40bb2990310112d7fa8836d260ff91107d760cd
|
7
|
+
data.tar.gz: 7dd7f4ebd77a9c9b898f4f07fcd33fe1e9216205b9d745ce7da5cff54dc6ba5febe6ed129594287d2c006165ef08a9717c88710b5cae346d15fe98c3e90844fe
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,329 @@
|
|
1
|
+
# Changelog
|
2
|
+
All notable changes to this project will be documented in this file.
|
3
|
+
|
4
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
5
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
6
|
+
|
7
|
+
## [Unreleased]
|
8
|
+
|
9
|
+
Nothing yet...
|
10
|
+
|
11
|
+
## [3.0.0] - 2020-06-08
|
12
|
+
|
13
|
+
### Changed
|
14
|
+
- This gem now wraps the `cucumber-gherkin` gem instead of the `gherkin` gem, now that `cucumber-gherkin` has superseded `gherkin`.
|
15
|
+
- Support for versions of Ruby earlier than 2.3 has been dropped due to that being the minimum required version of Ruby required by the `cucumber-gherkin` gem.
|
16
|
+
- When using the parsing functionality provided by this gem, the standardized AST returned when parsing Gherkin text is now returned directly as a Hash instead of also being wrapped in an array. The array was an artifact of basing the AST on the earliest versions of `gherkin` that were supported.
|
17
|
+
- No longer including every file in the Git repository as part of the gem. Only the files needed for using the gem (and the informative ones like the README) will be packaged into the released gem.
|
18
|
+
|
19
|
+
### Added
|
20
|
+
- Support added for more versions of the `cucumber-gherkin` gem
|
21
|
+
- 13.x
|
22
|
+
- 12.x
|
23
|
+
- 11.x
|
24
|
+
- 10.x
|
25
|
+
- 9.x
|
26
|
+
|
27
|
+
## [2.1.0] - 2020-05-27
|
28
|
+
|
29
|
+
### Added
|
30
|
+
- Support added for more versions of the `gherkin` gem
|
31
|
+
- 9.x
|
32
|
+
- 8.x
|
33
|
+
- 7.x
|
34
|
+
|
35
|
+
### Fixed
|
36
|
+
- Parsing errors are now correctly bubbled up when using Gherkin 6.x
|
37
|
+
|
38
|
+
## [2.0.0] - 2020-02-11
|
39
|
+
|
40
|
+
### Changed
|
41
|
+
|
42
|
+
- Step models now include doc strings and tables when determining their equality with other steps. Previously, only the base text of the step was included and the doc string/table was explicitly ignored.
|
43
|
+
|
44
|
+
|
45
|
+
## [1.5.1] - 2019-04-14
|
46
|
+
|
47
|
+
### Added
|
48
|
+
|
49
|
+
- Add dependency version limits to Ruby which was previously unbound
|
50
|
+
- Add dependency version limits to `bundler`, which was previously unbound
|
51
|
+
- Added inline documentation to some methods that did not have any
|
52
|
+
|
53
|
+
## [1.5.0] - 2019-01-13
|
54
|
+
|
55
|
+
### Added
|
56
|
+
|
57
|
+
- Added methods to easily run elements of an arbitrarily rooted model tree through a given block of code.
|
58
|
+
|
59
|
+
|
60
|
+
## [1.4.0] - 2018-11-14
|
61
|
+
|
62
|
+
### Added
|
63
|
+
|
64
|
+
- Now compatible with Gherkin 6.x.
|
65
|
+
|
66
|
+
|
67
|
+
## [1.3.0] - 2017-10-19
|
68
|
+
|
69
|
+
### Added
|
70
|
+
|
71
|
+
- Now compatible with Gherkin 5.x.
|
72
|
+
|
73
|
+
|
74
|
+
## [1.2.1] - 2017-04-25
|
75
|
+
|
76
|
+
### Added
|
77
|
+
|
78
|
+
- Now officially compatible with Rake 12.x.
|
79
|
+
|
80
|
+
|
81
|
+
## [1.2.0] - 2016-11-23
|
82
|
+
|
83
|
+
### Added
|
84
|
+
|
85
|
+
- The comments in a feature file are now a modeled element.
|
86
|
+
|
87
|
+
|
88
|
+
## [1.1.1] - 2016-10-28
|
89
|
+
|
90
|
+
### Fixed
|
91
|
+
|
92
|
+
- Abstract instantiation of models when using a non-default dialect
|
93
|
+
now works correctly.
|
94
|
+
|
95
|
+
|
96
|
+
## [1.1.0] - 2016-10-28
|
97
|
+
|
98
|
+
### Added
|
99
|
+
|
100
|
+
- Support added for non-English dialects. This gem should now be able to model
|
101
|
+
feature files using any dialect supported by the 'gherkin' gem.
|
102
|
+
|
103
|
+
- Models for elements of Gherkin that have keywords (e.g. 'Feature', 'Scenario',
|
104
|
+
'Examples') now keep track of the keyword used by the element that they model.
|
105
|
+
|
106
|
+
### Fixed
|
107
|
+
|
108
|
+
- Fixed a bug that was causing example models to output extra newline
|
109
|
+
characters under certain circumstances.
|
110
|
+
|
111
|
+
|
112
|
+
## [1.0.4] - 2016-10-07
|
113
|
+
|
114
|
+
### Fixed
|
115
|
+
|
116
|
+
- Fixed a bug that caused some models to include nil objects in their
|
117
|
+
children collection if they did not have the relevant child object.
|
118
|
+
|
119
|
+
|
120
|
+
## [1.0.3] - 2016-09-12
|
121
|
+
|
122
|
+
### Fixed
|
123
|
+
|
124
|
+
- Fixed a gem dependency that was accidentally declared with '<=' instead of '<'.
|
125
|
+
|
126
|
+
|
127
|
+
## [1.0.2] - 2016-09-12
|
128
|
+
|
129
|
+
### Added
|
130
|
+
|
131
|
+
- A more detailed gem description and summary have been added to the gemspec.
|
132
|
+
|
133
|
+
- The gem now declares version limits on its dependencies.
|
134
|
+
|
135
|
+
- Badges for the current status of the project have been added to the Readme.
|
136
|
+
|
137
|
+
|
138
|
+
## [1.0.1] - 2016-09-10
|
139
|
+
|
140
|
+
### Added
|
141
|
+
|
142
|
+
- In the Readme file, added a link to the published documentation.
|
143
|
+
|
144
|
+
|
145
|
+
## [1.0.0] - 2016-09-08
|
146
|
+
|
147
|
+
### Added
|
148
|
+
|
149
|
+
- Background models can now be compared to other models that have steps (i.e.
|
150
|
+
scenarios and outlines).
|
151
|
+
|
152
|
+
- Added specific ancestor types for scenario, outline, and background models as
|
153
|
+
alternatives to the generic 'test' ancestor type.
|
154
|
+
|
155
|
+
|
156
|
+
### Changed
|
157
|
+
|
158
|
+
- A base model class has been added in order to simplify adding new element
|
159
|
+
models. Other classes and modules used for organizing common model behavior
|
160
|
+
have been created/removed/renamed.
|
161
|
+
|
162
|
+
- All modeled elements of a Cucumber test suite are now modeled with actual
|
163
|
+
classes. Previously, some elements (such as tags or rows in an example table)
|
164
|
+
were modeled with simple strings.
|
165
|
+
|
166
|
+
- Feature file models now only have a single feature model instead of a
|
167
|
+
collection of them (that would only ever have one item in it).
|
168
|
+
|
169
|
+
- Rows in an example table and rows in a step table no longer use two different
|
170
|
+
classes for modeling.
|
171
|
+
|
172
|
+
- All models for Gherkin elements now track the line number from which they
|
173
|
+
originate in a source file.
|
174
|
+
|
175
|
+
- The source line of a model is now a mutable attribute instead of being read
|
176
|
+
only.
|
177
|
+
|
178
|
+
- The file path of a feature file is now a mutable attribute instead of being
|
179
|
+
read only.
|
180
|
+
|
181
|
+
- Standardized the initial values of the attributes of abstractly created
|
182
|
+
models so that they are consistent across model types.
|
183
|
+
|
184
|
+
- Extra whitespace around parsed element descriptions is now trimmed away
|
185
|
+
before being stored in a model.
|
186
|
+
|
187
|
+
- Adding rows to examples via hashes can now be done without regard to the
|
188
|
+
order of the keys in the hash. The correct order can be determined by the
|
189
|
+
model.
|
190
|
+
|
191
|
+
- The saved parsing data that is generated by the 'gherkin' gem is no longer
|
192
|
+
duplicated for each model, resulting in significantly less memory usage.
|
193
|
+
|
194
|
+
- Various methods have been renamed.
|
195
|
+
|
196
|
+
|
197
|
+
### Removed
|
198
|
+
|
199
|
+
- Removed the backdoor used to pass around model data during the model creation
|
200
|
+
process. Model input can now only be text.
|
201
|
+
|
202
|
+
- Simple counting methods have been removed. Ruby's collection methods are just
|
203
|
+
as easy to use directly when dealing with classes that contain collections
|
204
|
+
and the removal of these counting methods simplifies the codebase.
|
205
|
+
|
206
|
+
- The 'World' module has been removed. The scope of this gem is to model files
|
207
|
+
written in Gherkin. Concepts like 'step definitions' and 'hooks' are better
|
208
|
+
left to libraries that include (possibly programming language specific) test
|
209
|
+
execution logic within their scope of concern.
|
210
|
+
|
211
|
+
- Step models no longer have 'arguments' because they require the concept of
|
212
|
+
step definitions, which are no longer within the scope of this gem.
|
213
|
+
|
214
|
+
- Removed deprecated behavior
|
215
|
+
- Marked
|
216
|
+
- Doc strings no longer use an array of strings to model their content
|
217
|
+
- Tables no longer use nested arrays of strings to model their rows
|
218
|
+
- Models that have descriptions no longer use an array of strings to
|
219
|
+
model their description
|
220
|
+
- The convenient (read: awkward) #step_text has been removed.
|
221
|
+
- Unmarked
|
222
|
+
- Examples no longer use an array of hashes to model their rows
|
223
|
+
|
224
|
+
|
225
|
+
### Fixed
|
226
|
+
|
227
|
+
- String output of models has been improved. More special characters in Gherkin
|
228
|
+
(e.g. vertical bars in rows) are appropriately escaped in the string output
|
229
|
+
of a model and several minor bugs related to using model string output as the
|
230
|
+
input text for new models have been fixed.
|
231
|
+
|
232
|
+
|
233
|
+
## [0.4.1] - 2016-05-12
|
234
|
+
|
235
|
+
### Added
|
236
|
+
|
237
|
+
- Increased the flexibility of input when adding rows to an Example object. Non-
|
238
|
+
string values can now be used as input and they will be converted into
|
239
|
+
strings. Original input objects are not modified.
|
240
|
+
|
241
|
+
- Added some error checking around adding value rows to an Example object
|
242
|
+
without adding a parameter row as well.
|
243
|
+
|
244
|
+
|
245
|
+
## [0.4.0] - 2016-05-01
|
246
|
+
|
247
|
+
### Added
|
248
|
+
|
249
|
+
- The path of a Directory object is now a changeable attribute instead of only
|
250
|
+
being populated if the instance was given a diretory to model.
|
251
|
+
|
252
|
+
### Fixed
|
253
|
+
|
254
|
+
- Fixed a bug that occurred if a Directory object was asked for its
|
255
|
+
`#name` when it was created as 'abstract' instead of modeling an existing
|
256
|
+
directory.
|
257
|
+
|
258
|
+
|
259
|
+
## [0.3.0] - 2016-04-24
|
260
|
+
|
261
|
+
### Added
|
262
|
+
|
263
|
+
- Support for version 4.x of the 'gherkin' gem added.
|
264
|
+
|
265
|
+
### Fixed
|
266
|
+
|
267
|
+
- Fixed a bug that was preventing Example objects from being created
|
268
|
+
from text if that text had less Gherkin structure than normal.
|
269
|
+
|
270
|
+
|
271
|
+
## [0.2.0] - 2016-02-21
|
272
|
+
|
273
|
+
### Added
|
274
|
+
|
275
|
+
- Better error feedback when parsing errors are encountered. It is now easier
|
276
|
+
to tell which file contained invalid Gherkin.
|
277
|
+
|
278
|
+
|
279
|
+
## [0.1.0] - 2016-02-10
|
280
|
+
|
281
|
+
### Added
|
282
|
+
|
283
|
+
- Support for version 3.x of the 'gherkin' gem added.
|
284
|
+
|
285
|
+
### Fixed
|
286
|
+
|
287
|
+
- The saved parsing data that is generated by the 'gherkin' gem is no
|
288
|
+
longer modified by the rest of the model creation process.
|
289
|
+
|
290
|
+
|
291
|
+
## [0.0.2] - 2015-11-22
|
292
|
+
|
293
|
+
### Fixed
|
294
|
+
|
295
|
+
- Fixed a bug that was causing object comparison using #== to not
|
296
|
+
work when comparing some models to other types of objects.
|
297
|
+
|
298
|
+
|
299
|
+
## [0.0.1] - 2014-06-02
|
300
|
+
|
301
|
+
### Added
|
302
|
+
|
303
|
+
- Initial release
|
304
|
+
|
305
|
+
|
306
|
+
[Unreleased]: https://github.com/enkessler/cuke_modeler/compare/v3.0.0...HEAD
|
307
|
+
[3.0.0]: https://github.com/enkessler/cuke_modeler/compare/v2.1.0...v3.0.0
|
308
|
+
[2.1.0]: https://github.com/enkessler/cuke_modeler/compare/v2.0.0...v2.1.0
|
309
|
+
[2.0.0]: https://github.com/enkessler/cuke_modeler/compare/v1.5.1...v2.0.0
|
310
|
+
[1.5.1]: https://github.com/enkessler/cuke_modeler/compare/v1.5.0...v1.5.1
|
311
|
+
[1.5.0]: https://github.com/enkessler/cuke_modeler/compare/v1.4.0...v1.5.0
|
312
|
+
[1.4.0]: https://github.com/enkessler/cuke_modeler/compare/v1.3.0...v1.4.0
|
313
|
+
[1.3.0]: https://github.com/enkessler/cuke_modeler/compare/v1.2.1...v1.3.0
|
314
|
+
[1.2.1]: https://github.com/enkessler/cuke_modeler/compare/v1.2.0...v1.2.1
|
315
|
+
[1.2.0]: https://github.com/enkessler/cuke_modeler/compare/v1.1.1...v1.2.0
|
316
|
+
[1.1.1]: https://github.com/enkessler/cuke_modeler/compare/v1.1.0...v1.1.1
|
317
|
+
[1.1.0]: https://github.com/enkessler/cuke_modeler/compare/v1.0.4...v1.1.0
|
318
|
+
[1.0.4]: https://github.com/enkessler/cuke_modeler/compare/v1.0.3...v1.0.4
|
319
|
+
[1.0.3]: https://github.com/enkessler/cuke_modeler/compare/v1.0.2...v1.0.3
|
320
|
+
[1.0.2]: https://github.com/enkessler/cuke_modeler/compare/v1.0.1...v1.0.2
|
321
|
+
[1.0.1]: https://github.com/enkessler/cuke_modeler/compare/v1.0.0...v1.0.1
|
322
|
+
[1.0.0]: https://github.com/enkessler/cuke_modeler/compare/v0.4.1...v1.0.0
|
323
|
+
[0.4.1]: https://github.com/enkessler/cuke_modeler/compare/v0.4.0...v0.4.1
|
324
|
+
[0.4.0]: https://github.com/enkessler/cuke_modeler/compare/v0.3.0...v0.4.0
|
325
|
+
[0.3.0]: https://github.com/enkessler/cuke_modeler/compare/v0.2.0...v0.3.0
|
326
|
+
[0.2.0]: https://github.com/enkessler/cuke_modeler/compare/v0.1.0...v0.2.0
|
327
|
+
[0.1.0]: https://github.com/enkessler/cuke_modeler/compare/v0.0.2...v0.1.0
|
328
|
+
[0.0.2]: https://github.com/enkessler/cuke_modeler/compare/v0.0.1...v0.0.2
|
329
|
+
[0.0.1]: https://github.com/enkessler/cuke_modeler/compare/ce627fb591966c9ef19a9e69338b1282e9902a0d...v0.0.1
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -1,24 +1,33 @@
|
|
1
|
+
Basic stuff:
|
1
2
|
[![Gem Version](https://badge.fury.io/rb/cuke_modeler.svg)](https://rubygems.org/gems/cuke_modeler)
|
2
|
-
[![Dependency Status](https://gemnasium.com/enkessler/cuke_modeler.svg)](https://gemnasium.com/enkessler/cuke_modeler)
|
3
|
-
[![Build Status](https://travis-ci.org/enkessler/cuke_modeler.svg?branch=dev)](https://travis-ci.org/enkessler/cuke_modeler)
|
4
|
-
[![Build status](https://ci.appveyor.com/api/projects/status/is8xqvoqn3pjh9l0/branch/dev?svg=true)](https://ci.appveyor.com/project/enkessler/cuke-modeler/branch/dev)
|
5
|
-
[![Coverage Status](https://coveralls.io/repos/github/enkessler/cuke_modeler/badge.svg?branch=dev)](https://coveralls.io/github/enkessler/cuke_modeler?branch=dev)
|
6
|
-
[![Code Quality](https://codeclimate.com/github/enkessler/cuke_modeler/badges/gpa.svg)](https://codeclimate.com/github/enkessler/cuke_modeler)
|
7
3
|
[![Project License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/mit-license.php)
|
4
|
+
[![Downloads](https://img.shields.io/gem/dt/cuke_modeler.svg)](https://rubygems.org/gems/cuke_modeler)
|
8
5
|
|
6
|
+
User stuff:
|
7
|
+
[![Cucumber Docs](http://img.shields.io/badge/Documentation-Features-green.svg)](https://app.cucumber.pro/projects/cuke_modeler)
|
8
|
+
[![Yard Docs](http://img.shields.io/badge/Documentation-API-blue.svg)](https://www.rubydoc.info/gems/cuke_modeler)
|
9
|
+
|
10
|
+
Developer stuff:
|
11
|
+
[![Build Status](https://travis-ci.org/enkessler/cuke_modeler.svg)](https://travis-ci.org/enkessler/cuke_modeler)
|
12
|
+
[![Build status](https://ci.appveyor.com/api/projects/status/is8xqvoqn3pjh9l0?svg=true)](https://ci.appveyor.com/project/enkessler/cuke-modeler)
|
13
|
+
[![Coverage Status](https://coveralls.io/repos/github/enkessler/cuke_modeler/badge.svg)](https://coveralls.io/github/enkessler/cuke_modeler)
|
14
|
+
[![Maintainability](https://api.codeclimate.com/v1/badges/83986d8f7a918fed9707/maintainability)](https://codeclimate.com/github/enkessler/cuke_modeler/maintainability)
|
15
|
+
[![Inline docs](http://inch-ci.org/github/enkessler/cuke_modeler.svg)](https://inch-ci.org/github/enkessler/cuke_modeler)
|
16
|
+
|
17
|
+
---
|
9
18
|
|
10
19
|
# CukeModeler
|
11
20
|
|
12
21
|
There comes a time in every programmer's adventures with Cucumber when they
|
13
22
|
want to do Really Cool Stuff with their tests. This usually necessitates
|
14
23
|
scanning all of their feature files and playing with the output. While the
|
15
|
-
**[gherkin](https://github.com/cucumber/gherkin)** gem does a fine job of parsing feature files, reading or even manipulating
|
24
|
+
**[cucumber-gherkin](https://github.com/cucumber/cucumber/tree/master/gherkin)** gem does a fine job of parsing feature files, reading or even manipulating
|
16
25
|
the resulting Abstract Syntax Tree is not always fun. **cuke_modeler** comes to
|
17
26
|
the rescue by providing a modeling layer that is easier to work with.
|
18
27
|
|
19
28
|
Whether you just want something that will let you easily inspect your test
|
20
29
|
suite or you are looking for a foundation tool upon which to build something
|
21
|
-
Really Neat, this gem has you covered.
|
30
|
+
[Really Neat](#projects), this gem has you covered.
|
22
31
|
|
23
32
|
|
24
33
|
## Installation
|
@@ -74,7 +83,7 @@ One could, if so inclined, use this method to dynamically edit or even create
|
|
74
83
|
an entire test suite!
|
75
84
|
|
76
85
|
For more information on the different models and how to use them, see the
|
77
|
-
[documentation](
|
86
|
+
[documentation](https://app.cucumber.pro/projects/cuke_modeler).
|
78
87
|
|
79
88
|
## Modeling dialects other than English
|
80
89
|
|
@@ -108,21 +117,19 @@ that feature is ultimately run with SpecFlow (Cucumber for C#), Lettuce
|
|
108
117
|
(Cucumber for Python), or some other flavor of Cucumber.
|
109
118
|
|
110
119
|
|
111
|
-
### Other gems that are
|
120
|
+
### <a id="projects"></a>Other gems that are powered by **cuke_modeler**
|
112
121
|
|
113
122
|
* [cql](https://github.com/enkessler/cql)
|
114
123
|
* [cuketagger](https://github.com/enkessler/cuketagger)
|
115
124
|
* [cuke_cataloger](https://github.com/enkessler/cuke_cataloger)
|
116
125
|
* [cuke_slicer](https://github.com/grange-insurance/cuke_slicer)
|
126
|
+
* [cuke_linter](https://github.com/enkessler/cuke_linter)
|
127
|
+
|
128
|
+
|
129
|
+
## Development and Contributing
|
117
130
|
|
131
|
+
See [CONTRIBUTING.md](https://github.com/enkessler/cuke_modeler/blob/master/CONTRIBUTING.md)
|
118
132
|
|
119
|
-
##
|
133
|
+
## License
|
120
134
|
|
121
|
-
|
122
|
-
2. Create your feature branch (off of the development branch)
|
123
|
-
`git checkout -b my-new-feature`
|
124
|
-
3. Commit your changes
|
125
|
-
`git commit -am 'Add some feature'`
|
126
|
-
4. Push to the branch
|
127
|
-
`git push origin my-new-feature`
|
128
|
-
5. Create new Pull Request
|
135
|
+
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
data/cuke_modeler.gemspec
CHANGED
@@ -9,24 +9,30 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ["Eric Kessler"]
|
10
10
|
spec.email = ["morrow748@gmail.com"]
|
11
11
|
spec.summary = %q{A gem providing functionality to model Gherkin based test suites.}
|
12
|
-
spec.description = %q{This gem facilitates modeling a test suite that is written in Gherkin (e.g. Cucumber, SpecFlow, Lettuce, etc.). It does this by providing an abstraction layer on top of the Abstract Syntax Tree that the 'gherkin' gem generates when parsing features, as well as providing models for feature files and directories in order to be able to have a fully traversable model tree of a test suite's structure. These models can then be analyzed or manipulated more easily than the underlying AST layer.}
|
12
|
+
spec.description = %q{This gem facilitates modeling a test suite that is written in Gherkin (e.g. Cucumber, SpecFlow, Lettuce, etc.). It does this by providing an abstraction layer on top of the Abstract Syntax Tree that the 'cucumber-gherkin' gem generates when parsing features, as well as providing models for feature files and directories in order to be able to have a fully traversable model tree of a test suite's structure. These models can then be analyzed or manipulated more easily than the underlying AST layer.}
|
13
13
|
spec.homepage = 'https://github.com/enkessler/cuke_modeler'
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
spec.
|
16
|
+
# Specify which files should be added to the gem when it is released.
|
17
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
18
|
+
spec.files = Dir.chdir(File.expand_path('', __dir__)) do
|
19
|
+
source_controlled_files = `git ls-files -z`.split("\x0")
|
20
|
+
source_controlled_files.keep_if { |file| file =~ %r{^(lib|testing/cucumber/features)} }
|
21
|
+
source_controlled_files + ['README.md', 'LICENSE.txt', 'CHANGELOG.md', 'cuke_modeler.gemspec']
|
22
|
+
end
|
19
23
|
spec.require_paths = ["lib"]
|
20
24
|
|
21
|
-
spec.
|
22
|
-
spec.add_runtime_dependency('json', '>= 1.0', '< 3.0')
|
23
|
-
spec.add_runtime_dependency('multi_json', '~> 1.0')
|
25
|
+
spec.required_ruby_version = '>= 2.3', '< 3.0'
|
24
26
|
|
25
|
-
spec.
|
27
|
+
spec.add_runtime_dependency 'cucumber-gherkin', '< 14.0'
|
28
|
+
|
29
|
+
spec.add_development_dependency 'bundler', '< 3.0'
|
26
30
|
spec.add_development_dependency "rake", '< 13.0.0'
|
27
31
|
spec.add_development_dependency 'cucumber', '< 5.0.0'
|
28
32
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
29
|
-
spec.add_development_dependency 'simplecov', '
|
33
|
+
spec.add_development_dependency 'simplecov', '<= 0.16.1'
|
30
34
|
spec.add_development_dependency 'racatt', '~> 1.0'
|
31
35
|
spec.add_development_dependency 'coveralls', '< 1.0.0'
|
36
|
+
spec.add_development_dependency 'rainbow', '< 4.0.0'
|
37
|
+
spec.add_development_dependency 'test-unit', '< 4.0.0'
|
32
38
|
end
|