cuke_modeler 3.14.0 → 3.17.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 +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
|