cuke_modeler 3.14.0 → 3.17.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 +21 -1
- data/LICENSE.txt +1 -1
- data/cuke_modeler.gemspec +2 -2
- data/lib/cuke_modeler/adapters/gherkin_20_adapter.rb +1 -0
- data/lib/cuke_modeler/adapters/gherkin_23_adapter.rb +13 -0
- data/lib/cuke_modeler/adapters/gherkin_24_adapter.rb +13 -0
- data/lib/cuke_modeler/adapters/gherkin_9_adapter.rb +1 -0
- data/lib/cuke_modeler/containing.rb +5 -0
- data/lib/cuke_modeler/models/feature.rb +3 -0
- data/lib/cuke_modeler/parsing.rb +2 -4
- data/lib/cuke_modeler/version.rb +1 -1
- data/testing/cucumber/features/modeling/feature_modeling.feature +9 -1
- metadata +8 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 02d6d52b6e5fdb8292694494918d53c3fddb7bcb8e1d976a19bd97475c379cb0
|
4
|
+
data.tar.gz: 310129f5631470b373b64a8b1724625a53287408bf669c31f0118ce5785e6ffd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f637498d7c655525011ee1b62d18f8c2a11794d632fa40c659fa312fc3756b70ab11e6b9c29f37adf430bfc1e859df5ef51f44e0238fdc9c27088291d66dc4c0
|
7
|
+
data.tar.gz: 8eddf7c9c4c56b541a582d6fbe68dd0221a5d2be0f0b21e4203aabd246b3188ac5728d2bbf524b72da8a9c258a32c063775cd87d257b95498a005f9aefbbdcf2
|
data/CHANGELOG.md
CHANGED
@@ -8,6 +8,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
8
8
|
|
9
9
|
Nothing yet...
|
10
10
|
|
11
|
+
## [3.17.0] - 2022-06-14
|
12
|
+
|
13
|
+
### Added
|
14
|
+
- Support added for more versions of the `cucumber-gherkin` gem
|
15
|
+
- 24.x
|
16
|
+
|
17
|
+
## [3.16.0] - 2022-05-30
|
18
|
+
|
19
|
+
### Added
|
20
|
+
- Support added for more versions of the `cucumber-gherkin` gem
|
21
|
+
- 23.x
|
22
|
+
|
23
|
+
## [3.15.0] - 2021-11-27
|
24
|
+
|
25
|
+
### Added
|
26
|
+
- The language of a feature (e.g. 'en', 'hi', 'zh-CN', etc.) is now a modeled attribute on `Feature` models.
|
27
|
+
|
11
28
|
## [3.14.0] - 2021-11-22
|
12
29
|
|
13
30
|
### Added
|
@@ -413,7 +430,10 @@ Nothing yet...
|
|
413
430
|
- Initial release
|
414
431
|
|
415
432
|
|
416
|
-
[Unreleased]: https://github.com/enkessler/cuke_modeler/compare/v3.
|
433
|
+
[Unreleased]: https://github.com/enkessler/cuke_modeler/compare/v3.17.0...HEAD
|
434
|
+
[3.17.0]: https://github.com/enkessler/cuke_modeler/compare/v3.16.0...v3.17.0
|
435
|
+
[3.16.0]: https://github.com/enkessler/cuke_modeler/compare/v3.15.0...v3.16.0
|
436
|
+
[3.15.0]: https://github.com/enkessler/cuke_modeler/compare/v3.14.0...v3.15.0
|
417
437
|
[3.14.0]: https://github.com/enkessler/cuke_modeler/compare/v3.13.0...v3.14.0
|
418
438
|
[3.13.0]: https://github.com/enkessler/cuke_modeler/compare/v3.12.0...v3.13.0
|
419
439
|
[3.12.0]: https://github.com/enkessler/cuke_modeler/compare/v3.11.0...v3.12.0
|
data/LICENSE.txt
CHANGED
data/cuke_modeler.gemspec
CHANGED
@@ -36,13 +36,13 @@ 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', '< 25.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 'ffi', '< 2.0' # This is an invisible dependency for the `childprocess` gem on Windows
|
44
44
|
# Cucumber 4.x is the earliest version to use cucumber-gherkin
|
45
|
-
spec.add_development_dependency 'cucumber', '>= 4.0.0', '<
|
45
|
+
spec.add_development_dependency 'cucumber', '>= 4.0.0', '< 8.0.0'
|
46
46
|
spec.add_development_dependency 'rainbow', '< 4.0.0'
|
47
47
|
spec.add_development_dependency 'rake', '< 14.0.0'
|
48
48
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
@@ -35,6 +35,7 @@ module CukeModeler
|
|
35
35
|
clear_child_elements(adapted_feature, [[:tags],
|
36
36
|
[:children]])
|
37
37
|
|
38
|
+
adapted_feature['language'] = feature_ast.language
|
38
39
|
adapted_feature['keyword'] = feature_ast.keyword
|
39
40
|
adapted_feature['name'] = feature_ast.name
|
40
41
|
adapted_feature['description'] = feature_ast.description
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require_relative 'gherkin_20_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 23.x of the *cucumber-gherkin* gem into input that is consumable
|
8
|
+
# by this gem.
|
9
|
+
|
10
|
+
class Gherkin23Adapter < Gherkin20Adapter
|
11
|
+
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require_relative 'gherkin_20_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 24.x of the *cucumber-gherkin* gem into input that is consumable
|
8
|
+
# by this gem.
|
9
|
+
|
10
|
+
class Gherkin24Adapter < Gherkin20Adapter
|
11
|
+
|
12
|
+
end
|
13
|
+
end
|
@@ -36,6 +36,7 @@ module CukeModeler
|
|
36
36
|
clear_child_elements(adapted_feature, [[:tags],
|
37
37
|
[:children]])
|
38
38
|
|
39
|
+
adapted_feature['language'] = feature_ast[:language]
|
39
40
|
adapted_feature['keyword'] = feature_ast[:keyword]
|
40
41
|
adapted_feature['name'] = feature_ast[:name]
|
41
42
|
adapted_feature['description'] = feature_ast[:description] || ''
|
@@ -137,6 +137,7 @@ module CukeModeler
|
|
137
137
|
def populate_feature(feature_object, parsed_feature_data)
|
138
138
|
populate_parsing_data(feature_object, parsed_feature_data)
|
139
139
|
populate_source_location(feature_object, parsed_feature_data)
|
140
|
+
populate_language(feature_object, parsed_feature_data)
|
140
141
|
populate_keyword(feature_object, parsed_feature_data)
|
141
142
|
populate_name(feature_object, parsed_feature_data)
|
142
143
|
populate_description(feature_object, parsed_feature_data)
|
@@ -191,6 +192,10 @@ module CukeModeler
|
|
191
192
|
populate_source_location(comment_object, processed_comment_data)
|
192
193
|
end
|
193
194
|
|
195
|
+
def populate_language(feature_model, parsed_feature_data)
|
196
|
+
feature_model.language = parsed_feature_data['language']
|
197
|
+
end
|
198
|
+
|
194
199
|
def populate_comment_text(comment_model, parsed_comment_data)
|
195
200
|
comment_model.text = parsed_comment_data['text'].strip
|
196
201
|
end
|
data/lib/cuke_modeler/parsing.rb
CHANGED
@@ -9,7 +9,7 @@ require 'gherkin'
|
|
9
9
|
# an 'adapter' appropriate to the version of the *cucumber-gherkin* gem that has been activated.
|
10
10
|
gherkin_version = Gem.loaded_specs['cucumber-gherkin'].version.version
|
11
11
|
gherkin_major_version = gherkin_version.match(/^(\d+)\./)[1].to_i
|
12
|
-
supported_gherkin_versions = (9..
|
12
|
+
supported_gherkin_versions = (9..24)
|
13
13
|
|
14
14
|
raise("Unknown Gherkin version: '#{gherkin_version}'") unless supported_gherkin_versions.include?(gherkin_major_version)
|
15
15
|
|
@@ -63,7 +63,7 @@ module CukeModeler
|
|
63
63
|
# inside of it, so I'm leaving this here in case it changes again
|
64
64
|
# rubocop:disable Lint/DuplicateMethods
|
65
65
|
case gherkin_major_version
|
66
|
-
when 20, 21, 22
|
66
|
+
when 20, 21, 22, 23, 24
|
67
67
|
# TODO: make these methods private?
|
68
68
|
# NOT A PART OF THE PUBLIC API
|
69
69
|
# The method to use for parsing Gherkin text
|
@@ -152,8 +152,6 @@ module CukeModeler
|
|
152
152
|
|
153
153
|
gherkin_ast_message[:gherkin_document]
|
154
154
|
end
|
155
|
-
else
|
156
|
-
raise("Unknown Gherkin version: '#{gherkin_version}'")
|
157
155
|
end
|
158
156
|
# rubocop:enable Lint/DuplicateMethods
|
159
157
|
|
data/lib/cuke_modeler/version.rb
CHANGED
@@ -8,6 +8,7 @@ that feature.
|
|
8
8
|
Background:
|
9
9
|
Given the following gherkin:
|
10
10
|
"""
|
11
|
+
# language: en
|
11
12
|
@tag_1 @tag_2
|
12
13
|
Feature: Feature Foo
|
13
14
|
|
@@ -131,7 +132,7 @@ that feature.
|
|
131
132
|
"""
|
132
133
|
@model.source_line
|
133
134
|
"""
|
134
|
-
Then the model returns "
|
135
|
+
Then the model returns "3"
|
135
136
|
|
136
137
|
Scenario: Modeling a feature's source column
|
137
138
|
When the feature's source column is requested
|
@@ -139,3 +140,10 @@ that feature.
|
|
139
140
|
@model.source_column
|
140
141
|
"""
|
141
142
|
Then the model returns "1"
|
143
|
+
|
144
|
+
Scenario: Modeling a feature's language
|
145
|
+
When the feature's language is requested
|
146
|
+
"""
|
147
|
+
@model.language
|
148
|
+
"""
|
149
|
+
Then the model returns "en"
|
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.17.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:
|
11
|
+
date: 2022-06-15 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: '25.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: '25.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -75,7 +75,7 @@ dependencies:
|
|
75
75
|
version: 4.0.0
|
76
76
|
- - "<"
|
77
77
|
- !ruby/object:Gem::Version
|
78
|
-
version:
|
78
|
+
version: 8.0.0
|
79
79
|
type: :development
|
80
80
|
prerelease: false
|
81
81
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -85,7 +85,7 @@ dependencies:
|
|
85
85
|
version: 4.0.0
|
86
86
|
- - "<"
|
87
87
|
- !ruby/object:Gem::Version
|
88
|
-
version:
|
88
|
+
version: 8.0.0
|
89
89
|
- !ruby/object:Gem::Dependency
|
90
90
|
name: rainbow
|
91
91
|
requirement: !ruby/object:Gem::Requirement
|
@@ -229,6 +229,8 @@ files:
|
|
229
229
|
- lib/cuke_modeler/adapters/gherkin_20_adapter.rb
|
230
230
|
- lib/cuke_modeler/adapters/gherkin_21_adapter.rb
|
231
231
|
- lib/cuke_modeler/adapters/gherkin_22_adapter.rb
|
232
|
+
- lib/cuke_modeler/adapters/gherkin_23_adapter.rb
|
233
|
+
- lib/cuke_modeler/adapters/gherkin_24_adapter.rb
|
232
234
|
- lib/cuke_modeler/adapters/gherkin_9_adapter.rb
|
233
235
|
- lib/cuke_modeler/adapters/gherkin_base_adapter.rb
|
234
236
|
- lib/cuke_modeler/containing.rb
|