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 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