cuke_modeler 3.7.0 → 3.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -1
- data/README.md +1 -1
- data/cuke_modeler.gemspec +2 -2
- data/lib/cuke_modeler/adapters/gherkin_18_adapter.rb +13 -0
- data/lib/cuke_modeler/parsing.rb +5 -14
- data/lib/cuke_modeler/version.rb +1 -1
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9d5e453bca4aedc66b163c8be53f3715c84a91a40626e804861bbc1939f350f3
|
4
|
+
data.tar.gz: f6e22f7e59a532867edd592793ac647dcf56c348eff539e79e0aecac66b65a5e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 32bfde87a1b5a0b672242abebd463ed7abd0664a258f8c036bed8506eb3e9b2ba109aa1bb5ed4d9d3a08388b350dc79605d1851545421510e4dd927a789eb7d7
|
7
|
+
data.tar.gz: 524f9c651f334fc3fb30d8288d3b5a2b9e6cc81460b6cc0f081d0a7ab314a343785344ff351060394685ad1d9fe463ef52a86633cf6763f4b1ea7f6ee2db382b
|
data/CHANGELOG.md
CHANGED
@@ -8,6 +8,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
8
8
|
|
9
9
|
Noting yet...
|
10
10
|
|
11
|
+
## [3.8.0] - 2021-04-18
|
12
|
+
|
13
|
+
### Added
|
14
|
+
- Support added for more versions of the `cucumber-gherkin` gem
|
15
|
+
- 18.x
|
16
|
+
|
11
17
|
|
12
18
|
## [3.7.0] - 2021-02-18
|
13
19
|
|
@@ -363,7 +369,8 @@ Noting yet...
|
|
363
369
|
- Initial release
|
364
370
|
|
365
371
|
|
366
|
-
[Unreleased]: https://github.com/enkessler/cuke_modeler/compare/v3.
|
372
|
+
[Unreleased]: https://github.com/enkessler/cuke_modeler/compare/v3.8.0...HEAD
|
373
|
+
[3.8.0]: https://github.com/enkessler/cuke_modeler/compare/v3.7.0...v3.8.0
|
367
374
|
[3.7.0]: https://github.com/enkessler/cuke_modeler/compare/v3.6.0...v3.7.0
|
368
375
|
[3.6.0]: https://github.com/enkessler/cuke_modeler/compare/v3.5.0...v3.6.0
|
369
376
|
[3.5.0]: https://github.com/enkessler/cuke_modeler/compare/v3.4.0...v3.5.0
|
data/README.md
CHANGED
@@ -21,7 +21,7 @@ Developer stuff:
|
|
21
21
|
There comes a time in every programmer's adventures with Cucumber when they
|
22
22
|
want to do Really Cool Stuff with their tests. This usually necessitates
|
23
23
|
scanning all of their feature files and playing with the output. While the
|
24
|
-
**[cucumber-gherkin](https://github.com/cucumber/cucumber/tree/master/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 ([previously](https://github.com/enkessler/cuke_modeler/blob/master/CHANGELOG.md#300---2020-06-08) just the `gherkin` gem) does a fine job of parsing feature files, reading or even manipulating
|
25
25
|
the resulting Abstract Syntax Tree is not always fun. **cuke_modeler** comes to
|
26
26
|
the rescue by providing a modeling layer that is easier to work with.
|
27
27
|
|
data/cuke_modeler.gemspec
CHANGED
@@ -36,14 +36,14 @@ Gem::Specification.new do |spec|
|
|
36
36
|
|
37
37
|
spec.required_ruby_version = '>= 2.3', '< 4.0'
|
38
38
|
|
39
|
-
spec.add_runtime_dependency 'cucumber-gherkin', '<
|
39
|
+
spec.add_runtime_dependency 'cucumber-gherkin', '< 19.0'
|
40
40
|
|
41
41
|
spec.add_development_dependency 'bundler', '< 3.0'
|
42
42
|
spec.add_development_dependency 'childprocess', '< 5.0'
|
43
43
|
spec.add_development_dependency 'coveralls', '< 1.0.0'
|
44
44
|
spec.add_development_dependency 'ffi', '< 2.0' # This is an invisible dependency for the `childprocess` gem on Windows
|
45
45
|
# Cucumber 4.x is the earliest version to use cucumber-gherkin
|
46
|
-
spec.add_development_dependency 'cucumber', '>= 4.0.0', '<
|
46
|
+
spec.add_development_dependency 'cucumber', '>= 4.0.0', '< 7.0.0'
|
47
47
|
spec.add_development_dependency 'rainbow', '< 4.0.0'
|
48
48
|
spec.add_development_dependency 'rake', '< 14.0.0'
|
49
49
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require_relative 'gherkin_9_adapter'
|
2
|
+
|
3
|
+
|
4
|
+
module CukeModeler
|
5
|
+
|
6
|
+
# NOT A PART OF THE PUBLIC API
|
7
|
+
# An adapter that can convert the output of version 18.x of the *cucumber-gherkin* gem into input that is consumable
|
8
|
+
# by this gem.
|
9
|
+
|
10
|
+
class Gherkin18Adapter < Gherkin9Adapter
|
11
|
+
|
12
|
+
end
|
13
|
+
end
|
data/lib/cuke_modeler/parsing.rb
CHANGED
@@ -3,22 +3,13 @@
|
|
3
3
|
require 'gherkin'
|
4
4
|
|
5
5
|
|
6
|
-
# The *cucumber-gherkin*
|
7
|
-
#
|
8
|
-
|
6
|
+
# The *cucumber-gherkin* has different grammar rules across major versions. Parsing will be done with
|
7
|
+
# an 'adapter' appropriate to the version of the *cucumber-gherkin* gem that has been activated.
|
9
8
|
gherkin_version = Gem.loaded_specs['cucumber-gherkin'].version.version
|
10
9
|
gherkin_major_version = gherkin_version.match(/^(\d+)\./)[1].to_i
|
10
|
+
supported_gherkin_versions = [9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
|
11
11
|
|
12
|
-
|
13
|
-
# changes again
|
14
|
-
# rubocop:disable Lint/EmptyWhen
|
15
|
-
case gherkin_major_version
|
16
|
-
when 9, 10, 11, 12, 13, 14, 15, 16, 17
|
17
|
-
# Currently nothing else to load beyond the entry point to the gem
|
18
|
-
else
|
19
|
-
raise("Unknown Gherkin version: '#{gherkin_version}'")
|
20
|
-
end
|
21
|
-
# rubocop:enable Lint/EmptyWhen
|
12
|
+
raise("Unknown Gherkin version: '#{gherkin_version}'") unless supported_gherkin_versions.include?(gherkin_major_version)
|
22
13
|
|
23
14
|
require "cuke_modeler/adapters/gherkin_#{gherkin_major_version}_adapter"
|
24
15
|
|
@@ -70,7 +61,7 @@ module CukeModeler
|
|
70
61
|
# inside of it, so I'm leaving this here in case it changes again
|
71
62
|
# rubocop:disable Lint/DuplicateMethods
|
72
63
|
case gherkin_major_version
|
73
|
-
when 13, 14, 15, 16, 17
|
64
|
+
when 13, 14, 15, 16, 17, 18
|
74
65
|
# TODO: make these methods private?
|
75
66
|
# NOT A PART OF THE PUBLIC API
|
76
67
|
# The method to use for parsing Gherkin text
|
data/lib/cuke_modeler/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cuke_modeler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Kessler
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-04-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cucumber-gherkin
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "<"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '19.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "<"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '19.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -89,7 +89,7 @@ dependencies:
|
|
89
89
|
version: 4.0.0
|
90
90
|
- - "<"
|
91
91
|
- !ruby/object:Gem::Version
|
92
|
-
version:
|
92
|
+
version: 7.0.0
|
93
93
|
type: :development
|
94
94
|
prerelease: false
|
95
95
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -99,7 +99,7 @@ dependencies:
|
|
99
99
|
version: 4.0.0
|
100
100
|
- - "<"
|
101
101
|
- !ruby/object:Gem::Version
|
102
|
-
version:
|
102
|
+
version: 7.0.0
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: rainbow
|
105
105
|
requirement: !ruby/object:Gem::Requirement
|
@@ -224,6 +224,7 @@ files:
|
|
224
224
|
- lib/cuke_modeler/adapters/gherkin_15_adapter.rb
|
225
225
|
- lib/cuke_modeler/adapters/gherkin_16_adapter.rb
|
226
226
|
- lib/cuke_modeler/adapters/gherkin_17_adapter.rb
|
227
|
+
- lib/cuke_modeler/adapters/gherkin_18_adapter.rb
|
227
228
|
- lib/cuke_modeler/adapters/gherkin_9_adapter.rb
|
228
229
|
- lib/cuke_modeler/containing.rb
|
229
230
|
- lib/cuke_modeler/described.rb
|