cuke_modeler 3.27.0 → 3.28.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.
Files changed (98) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +579 -572
  3. data/LICENSE.txt +22 -22
  4. data/README.md +135 -135
  5. data/cuke_modeler.gemspec +59 -59
  6. data/lib/cuke_modeler/adapters/gherkin_10_adapter.rb +13 -13
  7. data/lib/cuke_modeler/adapters/gherkin_11_adapter.rb +13 -13
  8. data/lib/cuke_modeler/adapters/gherkin_12_adapter.rb +13 -13
  9. data/lib/cuke_modeler/adapters/gherkin_13_adapter.rb +13 -13
  10. data/lib/cuke_modeler/adapters/gherkin_14_adapter.rb +13 -13
  11. data/lib/cuke_modeler/adapters/gherkin_15_adapter.rb +13 -13
  12. data/lib/cuke_modeler/adapters/gherkin_16_adapter.rb +13 -13
  13. data/lib/cuke_modeler/adapters/gherkin_17_adapter.rb +13 -13
  14. data/lib/cuke_modeler/adapters/gherkin_18_adapter.rb +27 -27
  15. data/lib/cuke_modeler/adapters/gherkin_19_adapter.rb +64 -64
  16. data/lib/cuke_modeler/adapters/gherkin_20_adapter.rb +359 -359
  17. data/lib/cuke_modeler/adapters/gherkin_21_adapter.rb +13 -13
  18. data/lib/cuke_modeler/adapters/gherkin_22_adapter.rb +13 -13
  19. data/lib/cuke_modeler/adapters/gherkin_23_adapter.rb +13 -13
  20. data/lib/cuke_modeler/adapters/gherkin_24_adapter.rb +13 -13
  21. data/lib/cuke_modeler/adapters/gherkin_25_adapter.rb +13 -13
  22. data/lib/cuke_modeler/adapters/gherkin_26_adapter.rb +13 -13
  23. data/lib/cuke_modeler/adapters/gherkin_27_adapter.rb +13 -13
  24. data/lib/cuke_modeler/adapters/gherkin_28_adapter.rb +13 -13
  25. data/lib/cuke_modeler/adapters/gherkin_29_adapter.rb +13 -13
  26. data/lib/cuke_modeler/adapters/gherkin_30_adapter.rb +13 -13
  27. data/lib/cuke_modeler/adapters/gherkin_31_adapter.rb +13 -13
  28. data/lib/cuke_modeler/adapters/gherkin_32_adapter.rb +13 -13
  29. data/lib/cuke_modeler/adapters/gherkin_33_adapter.rb +13 -13
  30. data/lib/cuke_modeler/adapters/gherkin_34_adapter.rb +13 -13
  31. data/lib/cuke_modeler/adapters/gherkin_35_adapter.rb +13 -13
  32. data/lib/cuke_modeler/adapters/gherkin_36_adapter.rb +13 -13
  33. data/lib/cuke_modeler/adapters/gherkin_37_adapter.rb +13 -13
  34. data/lib/cuke_modeler/adapters/gherkin_38_adapter.rb +13 -0
  35. data/lib/cuke_modeler/adapters/gherkin_9_adapter.rb +375 -375
  36. data/lib/cuke_modeler/adapters/gherkin_base_adapter.rb +17 -17
  37. data/lib/cuke_modeler/containing.rb +105 -105
  38. data/lib/cuke_modeler/described.rb +71 -71
  39. data/lib/cuke_modeler/models/background.rb +122 -122
  40. data/lib/cuke_modeler/models/cell.rb +88 -88
  41. data/lib/cuke_modeler/models/comment.rb +82 -82
  42. data/lib/cuke_modeler/models/directory.rb +143 -143
  43. data/lib/cuke_modeler/models/doc_string.rb +104 -104
  44. data/lib/cuke_modeler/models/example.rb +274 -274
  45. data/lib/cuke_modeler/models/feature.rb +200 -200
  46. data/lib/cuke_modeler/models/feature_file.rb +116 -116
  47. data/lib/cuke_modeler/models/model.rb +87 -87
  48. data/lib/cuke_modeler/models/outline.rb +145 -145
  49. data/lib/cuke_modeler/models/row.rb +104 -104
  50. data/lib/cuke_modeler/models/rule.rb +162 -162
  51. data/lib/cuke_modeler/models/scenario.rb +128 -128
  52. data/lib/cuke_modeler/models/step.rb +178 -178
  53. data/lib/cuke_modeler/models/table.rb +117 -117
  54. data/lib/cuke_modeler/models/tag.rb +75 -75
  55. data/lib/cuke_modeler/named.rb +26 -26
  56. data/lib/cuke_modeler/nested.rb +61 -61
  57. data/lib/cuke_modeler/parsed.rb +24 -24
  58. data/lib/cuke_modeler/parsing.rb +208 -208
  59. data/lib/cuke_modeler/sourceable.rb +29 -29
  60. data/lib/cuke_modeler/stepped.rb +34 -34
  61. data/lib/cuke_modeler/taggable.rb +57 -57
  62. data/lib/cuke_modeler/version.rb +4 -4
  63. data/lib/cuke_modeler.rb +32 -32
  64. data/testing/cucumber/features/analysis/step_comparison.feature +25 -25
  65. data/testing/cucumber/features/analysis/test_comparison.feature +35 -35
  66. data/testing/cucumber/features/modeling/background_modeling.feature +105 -105
  67. data/testing/cucumber/features/modeling/background_output.feature +60 -60
  68. data/testing/cucumber/features/modeling/cell_modeling.feature +68 -68
  69. data/testing/cucumber/features/modeling/cell_output.feature +36 -36
  70. data/testing/cucumber/features/modeling/comment_modeling.feature +62 -62
  71. data/testing/cucumber/features/modeling/comment_output.feature +40 -40
  72. data/testing/cucumber/features/modeling/directory_modeling.feature +62 -62
  73. data/testing/cucumber/features/modeling/directory_output.feature +33 -33
  74. data/testing/cucumber/features/modeling/doc_string_modeling.feature +85 -85
  75. data/testing/cucumber/features/modeling/doc_string_output.feature +50 -50
  76. data/testing/cucumber/features/modeling/example_modeling.feature +155 -155
  77. data/testing/cucumber/features/modeling/example_output.feature +57 -57
  78. data/testing/cucumber/features/modeling/feature_file_modeling.feature +49 -49
  79. data/testing/cucumber/features/modeling/feature_file_output.feature +33 -33
  80. data/testing/cucumber/features/modeling/feature_modeling.feature +149 -149
  81. data/testing/cucumber/features/modeling/feature_output.feature +144 -144
  82. data/testing/cucumber/features/modeling/model_output.feature +61 -61
  83. data/testing/cucumber/features/modeling/model_structure.feature +42 -42
  84. data/testing/cucumber/features/modeling/outline_modeling.feature +175 -175
  85. data/testing/cucumber/features/modeling/outline_output.feature +87 -87
  86. data/testing/cucumber/features/modeling/row_modeling.feature +70 -70
  87. data/testing/cucumber/features/modeling/row_output.feature +40 -40
  88. data/testing/cucumber/features/modeling/rule_modeling.feature +171 -171
  89. data/testing/cucumber/features/modeling/rule_output.feature +136 -136
  90. data/testing/cucumber/features/modeling/scenario_modeling.feature +146 -146
  91. data/testing/cucumber/features/modeling/scenario_output.feature +63 -63
  92. data/testing/cucumber/features/modeling/step_modeling.feature +105 -105
  93. data/testing/cucumber/features/modeling/step_output.feature +47 -47
  94. data/testing/cucumber/features/modeling/table_modeling.feature +73 -73
  95. data/testing/cucumber/features/modeling/table_output.feature +42 -42
  96. data/testing/cucumber/features/modeling/tag_modeling.feature +62 -62
  97. data/testing/cucumber/features/modeling/tag_output.feature +40 -40
  98. metadata +6 -8
@@ -1,47 +1,47 @@
1
- Feature: Step output
2
-
3
- A step model's string output is a Gherkin representation of itself and its most relevant attribute for
4
- inspection is the text of the step that it models.
5
-
6
-
7
- Background:
8
-
9
- Note: Outputting a step that has a doc string is accomplished in the same manner
10
-
11
- Given the following gherkin:
12
- """
13
- * a step
14
- |value1|
15
- |value2|
16
- """
17
- And a step model based on that gherkin
18
- """
19
- @model = CukeModeler::Step.new(<source_text>)
20
- """
21
-
22
-
23
- Scenario: Stringify a step model
24
- When the model is output as a string
25
- """
26
- @model.to_s
27
- """
28
- Then the following text is provided:
29
- """
30
- * a step
31
- | value1 |
32
- | value2 |
33
- """
34
- And the output can be used to make an equivalent model
35
- """
36
- CukeModeler::Step.new(@model.to_s)
37
- """
38
-
39
- Scenario: Inspect a step model
40
- When the model is inspected
41
- """
42
- @model.inspect
43
- """
44
- Then the following text is provided:
45
- """
46
- #<CukeModeler::Step:<object_id> @text: "a step">
47
- """
1
+ Feature: Step output
2
+
3
+ A step model's string output is a Gherkin representation of itself and its most relevant attribute for
4
+ inspection is the text of the step that it models.
5
+
6
+
7
+ Background:
8
+
9
+ Note: Outputting a step that has a doc string is accomplished in the same manner
10
+
11
+ Given the following gherkin:
12
+ """
13
+ * a step
14
+ |value1|
15
+ |value2|
16
+ """
17
+ And a step model based on that gherkin
18
+ """
19
+ @model = CukeModeler::Step.new(<source_text>)
20
+ """
21
+
22
+
23
+ Scenario: Stringify a step model
24
+ When the model is output as a string
25
+ """
26
+ @model.to_s
27
+ """
28
+ Then the following text is provided:
29
+ """
30
+ * a step
31
+ | value1 |
32
+ | value2 |
33
+ """
34
+ And the output can be used to make an equivalent model
35
+ """
36
+ CukeModeler::Step.new(@model.to_s)
37
+ """
38
+
39
+ Scenario: Inspect a step model
40
+ When the model is inspected
41
+ """
42
+ @model.inspect
43
+ """
44
+ Then the following text is provided:
45
+ """
46
+ #<CukeModeler::Step:<object_id> @text: "a step">
47
+ """
@@ -1,73 +1,73 @@
1
- Feature: Table modeling
2
-
3
- Table models represent represent the table argument to a step. They expose several attributes of the table that they represent.
4
-
5
-
6
- Background:
7
- Given the following gherkin:
8
- """
9
- | value 1 | value 2 |
10
- | value 3 | value 4 |
11
- """
12
- And a table model based on that gherkin
13
- """
14
- @model = CukeModeler::Table.new(<source_text>)
15
- """
16
-
17
-
18
- Scenario: Modeling a table's rows
19
- When the table's rows are requested
20
- """
21
- @model.rows
22
- """
23
- Then the model returns models for the following rows:
24
- | value 1 | value 2 |
25
- | value 3 | value 4 |
26
-
27
- Scenario: Modeling a table's source line
28
- Given the following gherkin:
29
- """
30
- Feature:
31
-
32
- Scenario:
33
- * a step
34
- | value 1 |
35
- | value 2 |
36
- """
37
- And a feature model based on that gherkin
38
- """
39
- @model = CukeModeler::Feature.new(<source_text>)
40
- """
41
- And the table model inside of that feature model
42
- """
43
- @model = @model.tests.first.steps.first.block
44
- """
45
- When the table's source line is requested
46
- """
47
- @model.source_line
48
- """
49
- Then the model returns "5"
50
-
51
- Scenario: Modeling a table's source column
52
- Given the following gherkin:
53
- """
54
- Feature:
55
-
56
- Scenario:
57
- * a step
58
- | value 1 |
59
- | value 2 |
60
- """
61
- And a feature model based on that gherkin
62
- """
63
- @model = CukeModeler::Feature.new(<source_text>)
64
- """
65
- And the table model inside of that feature model
66
- """
67
- @model = @model.tests.first.steps.first.block
68
- """
69
- When the table's source column is requested
70
- """
71
- @model.source_column
72
- """
73
- Then the model returns "7"
1
+ Feature: Table modeling
2
+
3
+ Table models represent represent the table argument to a step. They expose several attributes of the table that they represent.
4
+
5
+
6
+ Background:
7
+ Given the following gherkin:
8
+ """
9
+ | value 1 | value 2 |
10
+ | value 3 | value 4 |
11
+ """
12
+ And a table model based on that gherkin
13
+ """
14
+ @model = CukeModeler::Table.new(<source_text>)
15
+ """
16
+
17
+
18
+ Scenario: Modeling a table's rows
19
+ When the table's rows are requested
20
+ """
21
+ @model.rows
22
+ """
23
+ Then the model returns models for the following rows:
24
+ | value 1 | value 2 |
25
+ | value 3 | value 4 |
26
+
27
+ Scenario: Modeling a table's source line
28
+ Given the following gherkin:
29
+ """
30
+ Feature:
31
+
32
+ Scenario:
33
+ * a step
34
+ | value 1 |
35
+ | value 2 |
36
+ """
37
+ And a feature model based on that gherkin
38
+ """
39
+ @model = CukeModeler::Feature.new(<source_text>)
40
+ """
41
+ And the table model inside of that feature model
42
+ """
43
+ @model = @model.tests.first.steps.first.block
44
+ """
45
+ When the table's source line is requested
46
+ """
47
+ @model.source_line
48
+ """
49
+ Then the model returns "5"
50
+
51
+ Scenario: Modeling a table's source column
52
+ Given the following gherkin:
53
+ """
54
+ Feature:
55
+
56
+ Scenario:
57
+ * a step
58
+ | value 1 |
59
+ | value 2 |
60
+ """
61
+ And a feature model based on that gherkin
62
+ """
63
+ @model = CukeModeler::Feature.new(<source_text>)
64
+ """
65
+ And the table model inside of that feature model
66
+ """
67
+ @model = @model.tests.first.steps.first.block
68
+ """
69
+ When the table's source column is requested
70
+ """
71
+ @model.source_column
72
+ """
73
+ Then the model returns "7"
@@ -1,42 +1,42 @@
1
- Feature: Table output
2
-
3
- A table model's string output is a Gherkin representation of itself and its most relevant attribute for
4
- inspection is the collection of rows of the table that it models.
5
-
6
-
7
- Background:
8
- Given the following gherkin:
9
- """
10
- |value1|value2|
11
- |value3|value4|
12
- """
13
- And a table model based on that gherkin
14
- """
15
- @model = CukeModeler::Table.new(<source_text>)
16
- """
17
-
18
-
19
- Scenario: Stringify a table model
20
- When the model is output as a string
21
- """
22
- @model.to_s
23
- """
24
- Then the following text is provided:
25
- """
26
- | value1 | value2 |
27
- | value3 | value4 |
28
- """
29
- And the output can be used to make an equivalent model
30
- """
31
- CukeModeler::Table.new(@model.to_s)
32
- """
33
-
34
- Scenario: Inspect a table model
35
- When the model is inspected
36
- """
37
- @model.inspect
38
- """
39
- Then the following text is provided:
40
- """
41
- #<CukeModeler::Table:<object_id> @rows: [["value1", "value2"], ["value3", "value4"]]>
42
- """
1
+ Feature: Table output
2
+
3
+ A table model's string output is a Gherkin representation of itself and its most relevant attribute for
4
+ inspection is the collection of rows of the table that it models.
5
+
6
+
7
+ Background:
8
+ Given the following gherkin:
9
+ """
10
+ |value1|value2|
11
+ |value3|value4|
12
+ """
13
+ And a table model based on that gherkin
14
+ """
15
+ @model = CukeModeler::Table.new(<source_text>)
16
+ """
17
+
18
+
19
+ Scenario: Stringify a table model
20
+ When the model is output as a string
21
+ """
22
+ @model.to_s
23
+ """
24
+ Then the following text is provided:
25
+ """
26
+ | value1 | value2 |
27
+ | value3 | value4 |
28
+ """
29
+ And the output can be used to make an equivalent model
30
+ """
31
+ CukeModeler::Table.new(@model.to_s)
32
+ """
33
+
34
+ Scenario: Inspect a table model
35
+ When the model is inspected
36
+ """
37
+ @model.inspect
38
+ """
39
+ Then the following text is provided:
40
+ """
41
+ #<CukeModeler::Table:<object_id> @rows: [["value1", "value2"], ["value3", "value4"]]>
42
+ """
@@ -1,62 +1,62 @@
1
- Feature: Tag modeling
2
-
3
- Tag models represent a tag portion of a feature. They expose several attributes of the tag that they represent.
4
-
5
-
6
- Background:
7
- Given the following gherkin:
8
- """
9
- @a_tag
10
- """
11
- And a tag model based on that gherkin
12
- """
13
- @model = CukeModeler::Tag.new(<source_text>)
14
- """
15
-
16
-
17
- Scenario: Modeling a tag's name
18
- When the tag's name is requested
19
- """
20
- @model.name
21
- """
22
- Then the model returns "@a_tag"
23
-
24
- Scenario: Modeling a tag's source line
25
- Given the following gherkin:
26
- """
27
- @a_tag
28
- Feature:
29
- """
30
- And a feature model based on that gherkin
31
- """
32
- @model = CukeModeler::Feature.new(<source_text>)
33
- """
34
- And the tag model of that feature model
35
- """
36
- @model = @model.tags.first
37
- """
38
- When the tag's source line is requested
39
- """
40
- @model.source_line
41
- """
42
- Then the model returns "1"
43
-
44
- Scenario: Modeling a tag's source column
45
- Given the following gherkin:
46
- """
47
- @a_tag
48
- Feature:
49
- """
50
- And a feature model based on that gherkin
51
- """
52
- @model = CukeModeler::Feature.new(<source_text>)
53
- """
54
- And the tag model of that feature model
55
- """
56
- @model = @model.tags.first
57
- """
58
- When the tag's source column is requested
59
- """
60
- @model.source_column
61
- """
62
- Then the model returns "1"
1
+ Feature: Tag modeling
2
+
3
+ Tag models represent a tag portion of a feature. They expose several attributes of the tag that they represent.
4
+
5
+
6
+ Background:
7
+ Given the following gherkin:
8
+ """
9
+ @a_tag
10
+ """
11
+ And a tag model based on that gherkin
12
+ """
13
+ @model = CukeModeler::Tag.new(<source_text>)
14
+ """
15
+
16
+
17
+ Scenario: Modeling a tag's name
18
+ When the tag's name is requested
19
+ """
20
+ @model.name
21
+ """
22
+ Then the model returns "@a_tag"
23
+
24
+ Scenario: Modeling a tag's source line
25
+ Given the following gherkin:
26
+ """
27
+ @a_tag
28
+ Feature:
29
+ """
30
+ And a feature model based on that gherkin
31
+ """
32
+ @model = CukeModeler::Feature.new(<source_text>)
33
+ """
34
+ And the tag model of that feature model
35
+ """
36
+ @model = @model.tags.first
37
+ """
38
+ When the tag's source line is requested
39
+ """
40
+ @model.source_line
41
+ """
42
+ Then the model returns "1"
43
+
44
+ Scenario: Modeling a tag's source column
45
+ Given the following gherkin:
46
+ """
47
+ @a_tag
48
+ Feature:
49
+ """
50
+ And a feature model based on that gherkin
51
+ """
52
+ @model = CukeModeler::Feature.new(<source_text>)
53
+ """
54
+ And the tag model of that feature model
55
+ """
56
+ @model = @model.tags.first
57
+ """
58
+ When the tag's source column is requested
59
+ """
60
+ @model.source_column
61
+ """
62
+ Then the model returns "1"
@@ -1,40 +1,40 @@
1
- Feature: Tag output
2
-
3
- A tag model's string output is a Gherkin representation of itself and its most relevant attribute for
4
- inspection is the name of the tag that it models.
5
-
6
-
7
- Background:
8
- Given the following gherkin:
9
- """
10
- @a_tag
11
- """
12
- And a tag model based on that gherkin
13
- """
14
- @model = CukeModeler::Tag.new(<source_text>)
15
- """
16
-
17
-
18
- Scenario: Stringify a tag model
19
- When the model is output as a string
20
- """
21
- @model.to_s
22
- """
23
- Then the following text is provided:
24
- """
25
- @a_tag
26
- """
27
- And the output can be used to make an equivalent model
28
- """
29
- CukeModeler::Tag.new(@model.to_s)
30
- """
31
-
32
- Scenario: Inspect a tag model
33
- When the model is inspected
34
- """
35
- @model.inspect
36
- """
37
- Then the following text is provided:
38
- """
39
- #<CukeModeler::Tag:<object_id> @name: "@a_tag">
40
- """
1
+ Feature: Tag output
2
+
3
+ A tag model's string output is a Gherkin representation of itself and its most relevant attribute for
4
+ inspection is the name of the tag that it models.
5
+
6
+
7
+ Background:
8
+ Given the following gherkin:
9
+ """
10
+ @a_tag
11
+ """
12
+ And a tag model based on that gherkin
13
+ """
14
+ @model = CukeModeler::Tag.new(<source_text>)
15
+ """
16
+
17
+
18
+ Scenario: Stringify a tag model
19
+ When the model is output as a string
20
+ """
21
+ @model.to_s
22
+ """
23
+ Then the following text is provided:
24
+ """
25
+ @a_tag
26
+ """
27
+ And the output can be used to make an equivalent model
28
+ """
29
+ CukeModeler::Tag.new(@model.to_s)
30
+ """
31
+
32
+ Scenario: Inspect a tag model
33
+ When the model is inspected
34
+ """
35
+ @model.inspect
36
+ """
37
+ Then the following text is provided:
38
+ """
39
+ #<CukeModeler::Tag:<object_id> @name: "@a_tag">
40
+ """
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cuke_modeler
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.27.0
4
+ version: 3.28.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Kessler
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2026-01-13 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: cucumber-gherkin
@@ -16,14 +15,14 @@ dependencies:
16
15
  requirements:
17
16
  - - "<"
18
17
  - !ruby/object:Gem::Version
19
- version: '38.0'
18
+ version: '39.0'
20
19
  type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
23
  - - "<"
25
24
  - !ruby/object:Gem::Version
26
- version: '38.0'
25
+ version: '39.0'
27
26
  - !ruby/object:Gem::Dependency
28
27
  name: base64
29
28
  requirement: !ruby/object:Gem::Requirement
@@ -244,6 +243,7 @@ files:
244
243
  - lib/cuke_modeler/adapters/gherkin_35_adapter.rb
245
244
  - lib/cuke_modeler/adapters/gherkin_36_adapter.rb
246
245
  - lib/cuke_modeler/adapters/gherkin_37_adapter.rb
246
+ - lib/cuke_modeler/adapters/gherkin_38_adapter.rb
247
247
  - lib/cuke_modeler/adapters/gherkin_9_adapter.rb
248
248
  - lib/cuke_modeler/adapters/gherkin_base_adapter.rb
249
249
  - lib/cuke_modeler/containing.rb
@@ -315,7 +315,6 @@ metadata:
315
315
  documentation_uri: https://www.rubydoc.info/gems/cuke_modeler
316
316
  source_code_uri: https://github.com/enkessler/cuke_modeler
317
317
  rubygems_mfa_required: 'true'
318
- post_install_message:
319
318
  rdoc_options: []
320
319
  require_paths:
321
320
  - lib
@@ -333,8 +332,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
333
332
  - !ruby/object:Gem::Version
334
333
  version: '0'
335
334
  requirements: []
336
- rubygems_version: 3.5.22
337
- signing_key:
335
+ rubygems_version: 4.0.3
338
336
  specification_version: 4
339
337
  summary: A gem providing functionality to model Gherkin based test suites.
340
338
  test_files: []