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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 42e13fd543b846c0dfd1120e67c157aefb71eeeae7bc68894686813368aace1a
4
- data.tar.gz: 676f7198e3746318b0f4a2d79c3a8c410ebcbab00b3e543dbb225cfaa8f4ee58
3
+ metadata.gz: 02d6d52b6e5fdb8292694494918d53c3fddb7bcb8e1d976a19bd97475c379cb0
4
+ data.tar.gz: 310129f5631470b373b64a8b1724625a53287408bf669c31f0118ce5785e6ffd
5
5
  SHA512:
6
- metadata.gz: 8500092bdeeb98f81134b8e3302ddf796acd867ccd1324b09d2d75103902b6a926d1220ddbaf08aea98624fe64f1246804868fee21e56a9ec24766c0695455f3
7
- data.tar.gz: 939fc0d59e4cf3cc194ac28f51a140c928e4ce61f493cc21b03b9a9140c80981fc9e25dbadaa46a4c09f187b8610f37d76a52b708f2ca6434500b2f7324bca7c
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.14.0...HEAD
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
@@ -1,4 +1,4 @@
1
- Copyright (c) 2014-2021 Eric Kessler, et al
1
+ Copyright (c) 2014-2022 Eric Kessler, et al
2
2
 
3
3
  MIT License
4
4
 
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', '< 23.0'
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', '< 7.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
@@ -10,6 +10,9 @@ module CukeModeler
10
10
  include Sourceable
11
11
 
12
12
 
13
+ # The language for the feature
14
+ attr_accessor :language
15
+
13
16
  # The keyword for the feature
14
17
  attr_accessor :keyword
15
18
 
@@ -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..22)
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
 
@@ -1,4 +1,4 @@
1
1
  module CukeModeler
2
2
  # The gem version
3
- VERSION = '3.14.0'.freeze
3
+ VERSION = '3.17.0'.freeze
4
4
  end
@@ -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 "2"
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.14.0
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: 2021-11-22 00:00:00.000000000 Z
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: '23.0'
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: '23.0'
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: 7.0.0
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: 7.0.0
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