cuke_modeler 3.27.0 → 3.29.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 (99) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +585 -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_39_adapter.rb +13 -0
  36. data/lib/cuke_modeler/adapters/gherkin_9_adapter.rb +375 -375
  37. data/lib/cuke_modeler/adapters/gherkin_base_adapter.rb +17 -17
  38. data/lib/cuke_modeler/containing.rb +105 -105
  39. data/lib/cuke_modeler/described.rb +71 -71
  40. data/lib/cuke_modeler/models/background.rb +122 -122
  41. data/lib/cuke_modeler/models/cell.rb +88 -88
  42. data/lib/cuke_modeler/models/comment.rb +82 -82
  43. data/lib/cuke_modeler/models/directory.rb +143 -143
  44. data/lib/cuke_modeler/models/doc_string.rb +104 -104
  45. data/lib/cuke_modeler/models/example.rb +274 -274
  46. data/lib/cuke_modeler/models/feature.rb +200 -200
  47. data/lib/cuke_modeler/models/feature_file.rb +116 -116
  48. data/lib/cuke_modeler/models/model.rb +87 -87
  49. data/lib/cuke_modeler/models/outline.rb +145 -145
  50. data/lib/cuke_modeler/models/row.rb +104 -104
  51. data/lib/cuke_modeler/models/rule.rb +162 -162
  52. data/lib/cuke_modeler/models/scenario.rb +128 -128
  53. data/lib/cuke_modeler/models/step.rb +178 -178
  54. data/lib/cuke_modeler/models/table.rb +117 -117
  55. data/lib/cuke_modeler/models/tag.rb +75 -75
  56. data/lib/cuke_modeler/named.rb +26 -26
  57. data/lib/cuke_modeler/nested.rb +61 -61
  58. data/lib/cuke_modeler/parsed.rb +24 -24
  59. data/lib/cuke_modeler/parsing.rb +208 -208
  60. data/lib/cuke_modeler/sourceable.rb +29 -29
  61. data/lib/cuke_modeler/stepped.rb +34 -34
  62. data/lib/cuke_modeler/taggable.rb +57 -57
  63. data/lib/cuke_modeler/version.rb +4 -4
  64. data/lib/cuke_modeler.rb +32 -32
  65. data/testing/cucumber/features/analysis/step_comparison.feature +25 -25
  66. data/testing/cucumber/features/analysis/test_comparison.feature +35 -35
  67. data/testing/cucumber/features/modeling/background_modeling.feature +105 -105
  68. data/testing/cucumber/features/modeling/background_output.feature +60 -60
  69. data/testing/cucumber/features/modeling/cell_modeling.feature +68 -68
  70. data/testing/cucumber/features/modeling/cell_output.feature +36 -36
  71. data/testing/cucumber/features/modeling/comment_modeling.feature +62 -62
  72. data/testing/cucumber/features/modeling/comment_output.feature +40 -40
  73. data/testing/cucumber/features/modeling/directory_modeling.feature +62 -62
  74. data/testing/cucumber/features/modeling/directory_output.feature +33 -33
  75. data/testing/cucumber/features/modeling/doc_string_modeling.feature +85 -85
  76. data/testing/cucumber/features/modeling/doc_string_output.feature +50 -50
  77. data/testing/cucumber/features/modeling/example_modeling.feature +155 -155
  78. data/testing/cucumber/features/modeling/example_output.feature +57 -57
  79. data/testing/cucumber/features/modeling/feature_file_modeling.feature +49 -49
  80. data/testing/cucumber/features/modeling/feature_file_output.feature +33 -33
  81. data/testing/cucumber/features/modeling/feature_modeling.feature +149 -149
  82. data/testing/cucumber/features/modeling/feature_output.feature +144 -144
  83. data/testing/cucumber/features/modeling/model_output.feature +61 -61
  84. data/testing/cucumber/features/modeling/model_structure.feature +42 -42
  85. data/testing/cucumber/features/modeling/outline_modeling.feature +175 -175
  86. data/testing/cucumber/features/modeling/outline_output.feature +87 -87
  87. data/testing/cucumber/features/modeling/row_modeling.feature +70 -70
  88. data/testing/cucumber/features/modeling/row_output.feature +40 -40
  89. data/testing/cucumber/features/modeling/rule_modeling.feature +171 -171
  90. data/testing/cucumber/features/modeling/rule_output.feature +136 -136
  91. data/testing/cucumber/features/modeling/scenario_modeling.feature +146 -146
  92. data/testing/cucumber/features/modeling/scenario_output.feature +63 -63
  93. data/testing/cucumber/features/modeling/step_modeling.feature +105 -105
  94. data/testing/cucumber/features/modeling/step_output.feature +47 -47
  95. data/testing/cucumber/features/modeling/table_modeling.feature +73 -73
  96. data/testing/cucumber/features/modeling/table_output.feature +42 -42
  97. data/testing/cucumber/features/modeling/tag_modeling.feature +62 -62
  98. data/testing/cucumber/features/modeling/tag_output.feature +40 -40
  99. metadata +9 -10
@@ -1,104 +1,104 @@
1
- module CukeModeler
2
-
3
- # A class modeling a step's doc string.
4
- class DocString < Model
5
-
6
- include Parsing
7
- include Parsed
8
- include Sourceable
9
-
10
-
11
- # The content type associated with the doc string
12
- attr_accessor :content_type
13
-
14
- # The content of the doc string
15
- attr_accessor :content
16
-
17
-
18
- # Creates a new DocString object and, if *source_text* is provided, populates
19
- # the object.
20
- #
21
- # @example
22
- # DocString.new
23
- # DocString.new("\"\"\" some_type\n foo\n\"\"\"")
24
- #
25
- # @param source_text [String] The Gherkin text that will be used to populate the model
26
- # @raise [ArgumentError] If *source_text* is not a String
27
- # @return [DocString] A new DocString instance
28
- def initialize(source_text = nil)
29
- super
30
- end
31
-
32
- # Returns a string representation of this model. For a DocString model,
33
- # this will be Gherkin text that is equivalent to the doc string being modeled.
34
- #
35
- # @example
36
- # doc_string.to_s
37
- #
38
- # @return [String] A string representation of this model
39
- def to_s
40
- text = "\"\"\"#{content_type_output_string}\n"
41
- text << content_output_string
42
- text << '"""'
43
- end
44
-
45
- # See `Object#inspect`. Returns some basic information about the
46
- # object, including its class, object ID, and its most meaningful
47
- # attribute. For a DocString model, this will be the content of the
48
- # doc string. If *verbose* is true, provides default Ruby inspection
49
- # behavior instead.
50
- #
51
- # @example
52
- # doc_string.inspect
53
- # doc_string.inspect(verbose: true)
54
- #
55
- # @param verbose [Boolean] Whether or not to return the full details of
56
- # the object. Defaults to false.
57
- # @return [String] A string representation of this model
58
- def inspect(verbose: false)
59
- return super if verbose
60
-
61
- "#{super.chop} @content: #{content.inspect}>"
62
- end
63
-
64
-
65
- private
66
-
67
-
68
- def process_source(source_text)
69
- base_file_string = "# language: #{Parsing.dialect}
70
- #{dialect_feature_keyword}:
71
- #{dialect_scenario_keyword}:
72
- #{dialect_step_keyword} step\n"
73
- source_text = base_file_string + source_text
74
-
75
- parsed_file = Parsing.parse_text(source_text, 'cuke_modeler_stand_alone_doc_string.feature')
76
-
77
- parsed_file['feature']['elements'].first['steps'].first['doc_string']
78
- end
79
-
80
- def populate_model(parsed_doc_string_data)
81
- populate_content_type(parsed_doc_string_data)
82
- populate_content(parsed_doc_string_data)
83
- populate_parsing_data(parsed_doc_string_data)
84
- populate_source_location(parsed_doc_string_data)
85
- end
86
-
87
- def populate_content_type(parsed_doc_string_data)
88
- @content_type = parsed_doc_string_data['content_type']
89
- end
90
-
91
- def populate_content(parsed_doc_string_data)
92
- @content = parsed_doc_string_data['value']
93
- end
94
-
95
- def content_type_output_string
96
- content_type ? " #{content_type}" : ''
97
- end
98
-
99
- def content_output_string
100
- content.nil? || content.empty? ? '' : "#{content.gsub('"""', '\"\"\"')}\n"
101
- end
102
-
103
- end
104
- end
1
+ module CukeModeler
2
+
3
+ # A class modeling a step's doc string.
4
+ class DocString < Model
5
+
6
+ include Parsing
7
+ include Parsed
8
+ include Sourceable
9
+
10
+
11
+ # The content type associated with the doc string
12
+ attr_accessor :content_type
13
+
14
+ # The content of the doc string
15
+ attr_accessor :content
16
+
17
+
18
+ # Creates a new DocString object and, if *source_text* is provided, populates
19
+ # the object.
20
+ #
21
+ # @example
22
+ # DocString.new
23
+ # DocString.new("\"\"\" some_type\n foo\n\"\"\"")
24
+ #
25
+ # @param source_text [String] The Gherkin text that will be used to populate the model
26
+ # @raise [ArgumentError] If *source_text* is not a String
27
+ # @return [DocString] A new DocString instance
28
+ def initialize(source_text = nil)
29
+ super
30
+ end
31
+
32
+ # Returns a string representation of this model. For a DocString model,
33
+ # this will be Gherkin text that is equivalent to the doc string being modeled.
34
+ #
35
+ # @example
36
+ # doc_string.to_s
37
+ #
38
+ # @return [String] A string representation of this model
39
+ def to_s
40
+ text = "\"\"\"#{content_type_output_string}\n"
41
+ text << content_output_string
42
+ text << '"""'
43
+ end
44
+
45
+ # See `Object#inspect`. Returns some basic information about the
46
+ # object, including its class, object ID, and its most meaningful
47
+ # attribute. For a DocString model, this will be the content of the
48
+ # doc string. If *verbose* is true, provides default Ruby inspection
49
+ # behavior instead.
50
+ #
51
+ # @example
52
+ # doc_string.inspect
53
+ # doc_string.inspect(verbose: true)
54
+ #
55
+ # @param verbose [Boolean] Whether or not to return the full details of
56
+ # the object. Defaults to false.
57
+ # @return [String] A string representation of this model
58
+ def inspect(verbose: false)
59
+ return super if verbose
60
+
61
+ "#{super.chop} @content: #{content.inspect}>"
62
+ end
63
+
64
+
65
+ private
66
+
67
+
68
+ def process_source(source_text)
69
+ base_file_string = "# language: #{Parsing.dialect}
70
+ #{dialect_feature_keyword}:
71
+ #{dialect_scenario_keyword}:
72
+ #{dialect_step_keyword} step\n"
73
+ source_text = base_file_string + source_text
74
+
75
+ parsed_file = Parsing.parse_text(source_text, 'cuke_modeler_stand_alone_doc_string.feature')
76
+
77
+ parsed_file['feature']['elements'].first['steps'].first['doc_string']
78
+ end
79
+
80
+ def populate_model(parsed_doc_string_data)
81
+ populate_content_type(parsed_doc_string_data)
82
+ populate_content(parsed_doc_string_data)
83
+ populate_parsing_data(parsed_doc_string_data)
84
+ populate_source_location(parsed_doc_string_data)
85
+ end
86
+
87
+ def populate_content_type(parsed_doc_string_data)
88
+ @content_type = parsed_doc_string_data['content_type']
89
+ end
90
+
91
+ def populate_content(parsed_doc_string_data)
92
+ @content = parsed_doc_string_data['value']
93
+ end
94
+
95
+ def content_type_output_string
96
+ content_type ? " #{content_type}" : ''
97
+ end
98
+
99
+ def content_output_string
100
+ content.nil? || content.empty? ? '' : "#{content.gsub('"""', '\"\"\"')}\n"
101
+ end
102
+
103
+ end
104
+ end