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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +579 -572
- data/LICENSE.txt +22 -22
- data/README.md +135 -135
- data/cuke_modeler.gemspec +59 -59
- data/lib/cuke_modeler/adapters/gherkin_10_adapter.rb +13 -13
- data/lib/cuke_modeler/adapters/gherkin_11_adapter.rb +13 -13
- data/lib/cuke_modeler/adapters/gherkin_12_adapter.rb +13 -13
- data/lib/cuke_modeler/adapters/gherkin_13_adapter.rb +13 -13
- data/lib/cuke_modeler/adapters/gherkin_14_adapter.rb +13 -13
- data/lib/cuke_modeler/adapters/gherkin_15_adapter.rb +13 -13
- data/lib/cuke_modeler/adapters/gherkin_16_adapter.rb +13 -13
- data/lib/cuke_modeler/adapters/gherkin_17_adapter.rb +13 -13
- data/lib/cuke_modeler/adapters/gherkin_18_adapter.rb +27 -27
- data/lib/cuke_modeler/adapters/gherkin_19_adapter.rb +64 -64
- data/lib/cuke_modeler/adapters/gherkin_20_adapter.rb +359 -359
- data/lib/cuke_modeler/adapters/gherkin_21_adapter.rb +13 -13
- data/lib/cuke_modeler/adapters/gherkin_22_adapter.rb +13 -13
- data/lib/cuke_modeler/adapters/gherkin_23_adapter.rb +13 -13
- data/lib/cuke_modeler/adapters/gherkin_24_adapter.rb +13 -13
- data/lib/cuke_modeler/adapters/gherkin_25_adapter.rb +13 -13
- data/lib/cuke_modeler/adapters/gherkin_26_adapter.rb +13 -13
- data/lib/cuke_modeler/adapters/gherkin_27_adapter.rb +13 -13
- data/lib/cuke_modeler/adapters/gherkin_28_adapter.rb +13 -13
- data/lib/cuke_modeler/adapters/gherkin_29_adapter.rb +13 -13
- data/lib/cuke_modeler/adapters/gherkin_30_adapter.rb +13 -13
- data/lib/cuke_modeler/adapters/gherkin_31_adapter.rb +13 -13
- data/lib/cuke_modeler/adapters/gherkin_32_adapter.rb +13 -13
- data/lib/cuke_modeler/adapters/gherkin_33_adapter.rb +13 -13
- data/lib/cuke_modeler/adapters/gherkin_34_adapter.rb +13 -13
- data/lib/cuke_modeler/adapters/gherkin_35_adapter.rb +13 -13
- data/lib/cuke_modeler/adapters/gherkin_36_adapter.rb +13 -13
- data/lib/cuke_modeler/adapters/gherkin_37_adapter.rb +13 -13
- data/lib/cuke_modeler/adapters/gherkin_38_adapter.rb +13 -0
- data/lib/cuke_modeler/adapters/gherkin_9_adapter.rb +375 -375
- data/lib/cuke_modeler/adapters/gherkin_base_adapter.rb +17 -17
- data/lib/cuke_modeler/containing.rb +105 -105
- data/lib/cuke_modeler/described.rb +71 -71
- data/lib/cuke_modeler/models/background.rb +122 -122
- data/lib/cuke_modeler/models/cell.rb +88 -88
- data/lib/cuke_modeler/models/comment.rb +82 -82
- data/lib/cuke_modeler/models/directory.rb +143 -143
- data/lib/cuke_modeler/models/doc_string.rb +104 -104
- data/lib/cuke_modeler/models/example.rb +274 -274
- data/lib/cuke_modeler/models/feature.rb +200 -200
- data/lib/cuke_modeler/models/feature_file.rb +116 -116
- data/lib/cuke_modeler/models/model.rb +87 -87
- data/lib/cuke_modeler/models/outline.rb +145 -145
- data/lib/cuke_modeler/models/row.rb +104 -104
- data/lib/cuke_modeler/models/rule.rb +162 -162
- data/lib/cuke_modeler/models/scenario.rb +128 -128
- data/lib/cuke_modeler/models/step.rb +178 -178
- data/lib/cuke_modeler/models/table.rb +117 -117
- data/lib/cuke_modeler/models/tag.rb +75 -75
- data/lib/cuke_modeler/named.rb +26 -26
- data/lib/cuke_modeler/nested.rb +61 -61
- data/lib/cuke_modeler/parsed.rb +24 -24
- data/lib/cuke_modeler/parsing.rb +208 -208
- data/lib/cuke_modeler/sourceable.rb +29 -29
- data/lib/cuke_modeler/stepped.rb +34 -34
- data/lib/cuke_modeler/taggable.rb +57 -57
- data/lib/cuke_modeler/version.rb +4 -4
- data/lib/cuke_modeler.rb +32 -32
- data/testing/cucumber/features/analysis/step_comparison.feature +25 -25
- data/testing/cucumber/features/analysis/test_comparison.feature +35 -35
- data/testing/cucumber/features/modeling/background_modeling.feature +105 -105
- data/testing/cucumber/features/modeling/background_output.feature +60 -60
- data/testing/cucumber/features/modeling/cell_modeling.feature +68 -68
- data/testing/cucumber/features/modeling/cell_output.feature +36 -36
- data/testing/cucumber/features/modeling/comment_modeling.feature +62 -62
- data/testing/cucumber/features/modeling/comment_output.feature +40 -40
- data/testing/cucumber/features/modeling/directory_modeling.feature +62 -62
- data/testing/cucumber/features/modeling/directory_output.feature +33 -33
- data/testing/cucumber/features/modeling/doc_string_modeling.feature +85 -85
- data/testing/cucumber/features/modeling/doc_string_output.feature +50 -50
- data/testing/cucumber/features/modeling/example_modeling.feature +155 -155
- data/testing/cucumber/features/modeling/example_output.feature +57 -57
- data/testing/cucumber/features/modeling/feature_file_modeling.feature +49 -49
- data/testing/cucumber/features/modeling/feature_file_output.feature +33 -33
- data/testing/cucumber/features/modeling/feature_modeling.feature +149 -149
- data/testing/cucumber/features/modeling/feature_output.feature +144 -144
- data/testing/cucumber/features/modeling/model_output.feature +61 -61
- data/testing/cucumber/features/modeling/model_structure.feature +42 -42
- data/testing/cucumber/features/modeling/outline_modeling.feature +175 -175
- data/testing/cucumber/features/modeling/outline_output.feature +87 -87
- data/testing/cucumber/features/modeling/row_modeling.feature +70 -70
- data/testing/cucumber/features/modeling/row_output.feature +40 -40
- data/testing/cucumber/features/modeling/rule_modeling.feature +171 -171
- data/testing/cucumber/features/modeling/rule_output.feature +136 -136
- data/testing/cucumber/features/modeling/scenario_modeling.feature +146 -146
- data/testing/cucumber/features/modeling/scenario_output.feature +63 -63
- data/testing/cucumber/features/modeling/step_modeling.feature +105 -105
- data/testing/cucumber/features/modeling/step_output.feature +47 -47
- data/testing/cucumber/features/modeling/table_modeling.feature +73 -73
- data/testing/cucumber/features/modeling/table_output.feature +42 -42
- data/testing/cucumber/features/modeling/tag_modeling.feature +62 -62
- data/testing/cucumber/features/modeling/tag_output.feature +40 -40
- 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
|