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