cuke_modeler 1.0.4 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/History.md +12 -0
- data/lib/cuke_modeler/adapters/gherkin_2_adapter.rb +5 -5
- data/lib/cuke_modeler/adapters/gherkin_3_adapter.rb +8 -5
- data/lib/cuke_modeler/adapters/gherkin_4_adapter.rb +8 -5
- data/lib/cuke_modeler/containing.rb +12 -7
- data/lib/cuke_modeler/models/background.rb +7 -2
- data/lib/cuke_modeler/models/cell.rb +2 -1
- data/lib/cuke_modeler/models/doc_string.rb +2 -1
- data/lib/cuke_modeler/models/example.rb +8 -4
- data/lib/cuke_modeler/models/feature.rb +4 -1
- data/lib/cuke_modeler/models/outline.rb +6 -2
- data/lib/cuke_modeler/models/row.rb +2 -1
- data/lib/cuke_modeler/models/scenario.rb +7 -2
- data/lib/cuke_modeler/models/step.rb +2 -1
- data/lib/cuke_modeler/models/table.rb +2 -1
- data/lib/cuke_modeler/models/tag.rb +2 -1
- data/lib/cuke_modeler/parsing.rb +45 -0
- data/lib/cuke_modeler/version.rb +1 -1
- data/testing/cucumber/features/modeling/background_modeling.feature +7 -0
- data/testing/cucumber/features/modeling/background_output.feature +6 -1
- data/testing/cucumber/features/modeling/directory_output.feature +6 -1
- data/testing/cucumber/features/modeling/doc_string_output.feature +6 -1
- data/testing/cucumber/features/modeling/example_modeling.feature +7 -0
- data/testing/cucumber/features/modeling/example_output.feature +6 -1
- data/testing/cucumber/features/modeling/feature_file_output.feature +6 -1
- data/testing/cucumber/features/modeling/feature_modeling.feature +7 -0
- data/testing/cucumber/features/modeling/feature_output.feature +6 -1
- data/testing/cucumber/features/modeling/model_output.feature +1 -8
- data/testing/cucumber/features/modeling/outline_modeling.feature +7 -0
- data/testing/cucumber/features/modeling/outline_output.feature +6 -1
- data/testing/cucumber/features/modeling/row_output.feature +6 -1
- data/testing/cucumber/features/modeling/scenario_modeling.feature +7 -0
- data/testing/cucumber/features/modeling/scenario_output.feature +6 -1
- data/testing/cucumber/features/modeling/step_output.feature +6 -1
- data/testing/cucumber/features/modeling/table_output.feature +6 -1
- data/testing/cucumber/features/modeling/tag_output.feature +6 -1
- data/testing/cucumber/step_definitions/verification_steps.rb +21 -12
- data/testing/dialect_helper.rb +48 -0
- data/testing/rspec/spec/integration/background_integration_spec.rb +93 -88
- data/testing/rspec/spec/integration/cell_integration_spec.rb +26 -27
- data/testing/rspec/spec/integration/directory_integration_spec.rb +4 -4
- data/testing/rspec/spec/integration/doc_string_integration_spec.rb +38 -39
- data/testing/rspec/spec/integration/example_integration_spec.rb +97 -95
- data/testing/rspec/spec/integration/feature_file_integration_spec.rb +5 -5
- data/testing/rspec/spec/integration/feature_integration_spec.rb +157 -155
- data/testing/rspec/spec/integration/gherkin_2_adapter_spec.rb +17 -17
- data/testing/rspec/spec/integration/gherkin_3_adapter_spec.rb +17 -17
- data/testing/rspec/spec/integration/gherkin_4_adapter_spec.rb +17 -17
- data/testing/rspec/spec/integration/outline_integration_spec.rb +359 -354
- data/testing/rspec/spec/integration/parsing_integration_spec.rb +30 -2
- data/testing/rspec/spec/integration/row_integration_spec.rb +23 -25
- data/testing/rspec/spec/integration/scenario_integration_spec.rb +238 -235
- data/testing/rspec/spec/integration/step_integration_spec.rb +69 -64
- data/testing/rspec/spec/integration/table_integration_spec.rb +32 -36
- data/testing/rspec/spec/integration/tag_integration_spec.rb +26 -27
- data/testing/rspec/spec/spec_helper.rb +43 -0
- data/testing/rspec/spec/unit/background_unit_spec.rb +7 -0
- data/testing/rspec/spec/unit/example_unit_spec.rb +7 -0
- data/testing/rspec/spec/unit/feature_unit_spec.rb +7 -0
- data/testing/rspec/spec/unit/outline_unit_spec.rb +7 -0
- data/testing/rspec/spec/unit/parsing_unit_spec.rb +33 -0
- data/testing/rspec/spec/unit/scenario_unit_spec.rb +7 -0
- data/testing/rspec/spec/unit/shared/keyworded_models_unit_specs.rb +58 -0
- data/testing/rspec/spec/unit/step_unit_spec.rb +1 -23
- data/testing/test_languages.json +45 -0
- data/todo.txt +1 -1
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 329eb638d9b52dada19e21e6753722e0400d3991
|
4
|
+
data.tar.gz: dfb9d2bd435da763e2d0f909c68e3b36e7f30a98
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d5e6e71f9dd644940330211fda900bf879f6451c4965b7265f197740784342d26c6a26fac59d3ef77e7a02382fa61ddfc085a1b31641ead50ace3f473e98c64b
|
7
|
+
data.tar.gz: 67da157b4e93b31a719b60a3ab191c2eaca7b324bc64d6bfd5d3fa62d7f7fb32ff8391319b787fe0116fd89470287911fb8f1ac6d74714fdef328631d54b287c
|
data/History.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
### Version 1.1.0 / 2016-10-28
|
2
|
+
|
3
|
+
* Support added for non-English dialects. This gem should now be able to model
|
4
|
+
feature files using any dialect supported by the 'gherkin' gem.
|
5
|
+
|
6
|
+
* Models for elements of Gherkin that have keywords (e.g. 'Feature', 'Scenario',
|
7
|
+
'Examples') now keep track of the keyword used by the element that they model.
|
8
|
+
|
9
|
+
* Bug fix - Fixed a bug that was causing example models to output extra newline
|
10
|
+
characters under certain circumstances.
|
11
|
+
|
12
|
+
|
1
13
|
### Version 1.0.4 / 2016-10-07
|
2
14
|
|
3
15
|
* Bug Fix - Fixed a bug that caused some models to include nil objects in their
|
@@ -200,15 +200,15 @@ module CukeModeler
|
|
200
200
|
def adapt_child_elements!(parsed_feature)
|
201
201
|
if parsed_feature['elements']
|
202
202
|
parsed_feature['elements'].each do |element|
|
203
|
-
case element['
|
204
|
-
when '
|
203
|
+
case element['type']
|
204
|
+
when 'background'
|
205
205
|
adapt_background!(element)
|
206
|
-
when '
|
206
|
+
when 'scenario'
|
207
207
|
adapt_scenario!(element)
|
208
|
-
when '
|
208
|
+
when 'scenario_outline'
|
209
209
|
adapt_outline!(element)
|
210
210
|
else
|
211
|
-
raise("Unknown element
|
211
|
+
raise("Unknown element type: #{element['type']}")
|
212
212
|
end
|
213
213
|
end
|
214
214
|
end
|
@@ -22,6 +22,7 @@ module CukeModeler
|
|
22
22
|
parsed_feature['cuke_modeler_parsing_data'][:scenarioDefinitions] = nil
|
23
23
|
parsed_feature['cuke_modeler_parsing_data'][:background] = nil
|
24
24
|
|
25
|
+
parsed_feature['keyword'] = parsed_feature.delete(:keyword)
|
25
26
|
parsed_feature['name'] = parsed_feature.delete(:name)
|
26
27
|
parsed_feature['description'] = parsed_feature.delete(:description) || ''
|
27
28
|
parsed_feature['line'] = parsed_feature.delete(:location)[:line]
|
@@ -46,7 +47,8 @@ module CukeModeler
|
|
46
47
|
# Removing parsed data for child elements in order to avoid duplicating data
|
47
48
|
parsed_background['cuke_modeler_parsing_data'][:steps] = nil
|
48
49
|
|
49
|
-
parsed_background['
|
50
|
+
parsed_background['type'] = parsed_background.delete(:type).to_s
|
51
|
+
parsed_background['keyword'] = parsed_background.delete(:keyword).to_s
|
50
52
|
parsed_background['name'] = parsed_background.delete(:name)
|
51
53
|
parsed_background['description'] = parsed_background.delete(:description) || ''
|
52
54
|
parsed_background['line'] = parsed_background.delete(:location)[:line]
|
@@ -122,6 +124,7 @@ module CukeModeler
|
|
122
124
|
parsed_example['cuke_modeler_parsing_data'][:tableHeader] = nil
|
123
125
|
parsed_example['cuke_modeler_parsing_data'][:tableBody] = nil
|
124
126
|
|
127
|
+
parsed_example['keyword'] = parsed_example.delete(:keyword)
|
125
128
|
parsed_example['name'] = parsed_example.delete(:name)
|
126
129
|
parsed_example['line'] = parsed_example.delete(:location)[:line]
|
127
130
|
parsed_example['description'] = parsed_example.delete(:description) || ''
|
@@ -252,16 +255,16 @@ module CukeModeler
|
|
252
255
|
# Saving off the original data
|
253
256
|
parsed_test['cuke_modeler_parsing_data'] = Marshal::load(Marshal.dump(parsed_test))
|
254
257
|
|
255
|
-
parsed_test['keyword'] = parsed_test.delete(:
|
258
|
+
parsed_test['keyword'] = parsed_test.delete(:keyword)
|
259
|
+
parsed_test['type'] = parsed_test.delete(:type).to_s
|
256
260
|
|
257
|
-
case parsed_test['
|
261
|
+
case parsed_test['type']
|
258
262
|
when 'Scenario'
|
259
263
|
adapt_scenario!(parsed_test)
|
260
264
|
when 'ScenarioOutline'
|
261
|
-
parsed_test['keyword'] = 'Scenario Outline'
|
262
265
|
adapt_outline!(parsed_test)
|
263
266
|
else
|
264
|
-
raise(ArgumentError, "Unknown test type: #{parsed_test['
|
267
|
+
raise(ArgumentError, "Unknown test type: #{parsed_test['type']}")
|
265
268
|
end
|
266
269
|
end
|
267
270
|
|
@@ -20,6 +20,7 @@ module CukeModeler
|
|
20
20
|
parsed_feature['cuke_modeler_parsing_data'][:tags] = nil
|
21
21
|
parsed_feature['cuke_modeler_parsing_data'][:children] = nil
|
22
22
|
|
23
|
+
parsed_feature['keyword'] = parsed_feature.delete(:keyword)
|
23
24
|
parsed_feature['name'] = parsed_feature.delete(:name)
|
24
25
|
parsed_feature['description'] = parsed_feature.delete(:description) || ''
|
25
26
|
parsed_feature['line'] = parsed_feature.delete(:location)[:line]
|
@@ -43,7 +44,8 @@ module CukeModeler
|
|
43
44
|
# Removing parsed data for child elements in order to avoid duplicating data
|
44
45
|
parsed_background['cuke_modeler_parsing_data'][:steps] = nil
|
45
46
|
|
46
|
-
parsed_background['
|
47
|
+
parsed_background['type'] = parsed_background.delete(:type).to_s
|
48
|
+
parsed_background['keyword'] = parsed_background.delete(:keyword).to_s
|
47
49
|
parsed_background['name'] = parsed_background.delete(:name)
|
48
50
|
parsed_background['description'] = parsed_background.delete(:description) || ''
|
49
51
|
parsed_background['line'] = parsed_background.delete(:location)[:line]
|
@@ -118,6 +120,7 @@ module CukeModeler
|
|
118
120
|
parsed_example['cuke_modeler_parsing_data'][:tableHeader] = nil
|
119
121
|
parsed_example['cuke_modeler_parsing_data'][:tableBody] = nil
|
120
122
|
|
123
|
+
parsed_example['keyword'] = parsed_example.delete(:keyword)
|
121
124
|
parsed_example['name'] = parsed_example.delete(:name)
|
122
125
|
parsed_example['line'] = parsed_example.delete(:location)[:line]
|
123
126
|
parsed_example['description'] = parsed_example.delete(:description) || ''
|
@@ -264,16 +267,16 @@ module CukeModeler
|
|
264
267
|
# Saving off the original data
|
265
268
|
parsed_test['cuke_modeler_parsing_data'] = Marshal::load(Marshal.dump(parsed_test))
|
266
269
|
|
267
|
-
parsed_test['keyword'] = parsed_test.delete(:
|
270
|
+
parsed_test['keyword'] = parsed_test.delete(:keyword)
|
271
|
+
parsed_test['type'] = parsed_test.delete(:type).to_s
|
268
272
|
|
269
|
-
case parsed_test['
|
273
|
+
case parsed_test['type']
|
270
274
|
when 'Scenario'
|
271
275
|
adapt_scenario!(parsed_test)
|
272
276
|
when 'ScenarioOutline'
|
273
|
-
parsed_test['keyword'] = 'Scenario Outline'
|
274
277
|
adapt_outline!(parsed_test)
|
275
278
|
else
|
276
|
-
raise(ArgumentError, "Unknown test type: #{parsed_test['
|
279
|
+
raise(ArgumentError, "Unknown test type: #{parsed_test['type']}")
|
277
280
|
end
|
278
281
|
end
|
279
282
|
|
@@ -23,6 +23,7 @@ module CukeModeler
|
|
23
23
|
def populate_scenario(scenario_object, parsed_scenario_data)
|
24
24
|
populate_parsing_data(scenario_object, parsed_scenario_data)
|
25
25
|
populate_source_line(scenario_object, parsed_scenario_data)
|
26
|
+
populate_keyword(scenario_object, parsed_scenario_data)
|
26
27
|
populate_name(scenario_object, parsed_scenario_data)
|
27
28
|
populate_description(scenario_object, parsed_scenario_data)
|
28
29
|
populate_steps(scenario_object, parsed_scenario_data)
|
@@ -32,6 +33,7 @@ module CukeModeler
|
|
32
33
|
def populate_outline(outline_object, parsed_outline_data)
|
33
34
|
populate_parsing_data(outline_object, parsed_outline_data)
|
34
35
|
populate_source_line(outline_object, parsed_outline_data)
|
36
|
+
populate_keyword(outline_object, parsed_outline_data)
|
35
37
|
populate_name(outline_object, parsed_outline_data)
|
36
38
|
populate_description(outline_object, parsed_outline_data)
|
37
39
|
populate_steps(outline_object, parsed_outline_data)
|
@@ -41,6 +43,7 @@ module CukeModeler
|
|
41
43
|
|
42
44
|
def populate_background(background_object, parsed_background_data)
|
43
45
|
populate_parsing_data(background_object, parsed_background_data)
|
46
|
+
populate_keyword(background_object, parsed_background_data)
|
44
47
|
populate_name(background_object, parsed_background_data)
|
45
48
|
populate_description(background_object, parsed_background_data)
|
46
49
|
populate_source_line(background_object, parsed_background_data)
|
@@ -93,6 +96,7 @@ module CukeModeler
|
|
93
96
|
|
94
97
|
def populate_example(example_object, parsed_example_data)
|
95
98
|
populate_parsing_data(example_object, parsed_example_data)
|
99
|
+
populate_keyword(example_object, parsed_example_data)
|
96
100
|
populate_source_line(example_object, parsed_example_data)
|
97
101
|
populate_name(example_object, parsed_example_data)
|
98
102
|
populate_description(example_object, parsed_example_data)
|
@@ -109,6 +113,7 @@ module CukeModeler
|
|
109
113
|
def populate_feature(feature_object, parsed_feature_data)
|
110
114
|
populate_parsing_data(feature_object, parsed_feature_data)
|
111
115
|
populate_source_line(feature_object, parsed_feature_data)
|
116
|
+
populate_keyword(feature_object, parsed_feature_data)
|
112
117
|
populate_name(feature_object, parsed_feature_data)
|
113
118
|
populate_description(feature_object, parsed_feature_data)
|
114
119
|
populate_tags(feature_object, parsed_feature_data)
|
@@ -143,8 +148,8 @@ module CukeModeler
|
|
143
148
|
step_model.text = parsed_step_data['name']
|
144
149
|
end
|
145
150
|
|
146
|
-
def populate_keyword(
|
147
|
-
|
151
|
+
def populate_keyword(model, parsed_model_data)
|
152
|
+
model.keyword = parsed_model_data['keyword'].strip
|
148
153
|
end
|
149
154
|
|
150
155
|
def populate_row_models(table_model, parsed_table_data)
|
@@ -188,15 +193,15 @@ module CukeModeler
|
|
188
193
|
|
189
194
|
if elements
|
190
195
|
elements.each do |element|
|
191
|
-
case element['
|
192
|
-
when 'Scenario'
|
196
|
+
case element['type']
|
197
|
+
when 'Scenario', 'scenario'
|
193
198
|
feature_model.tests << build_child_model(Scenario, element)
|
194
|
-
when '
|
199
|
+
when 'ScenarioOutline', 'scenario_outline'
|
195
200
|
feature_model.tests << build_child_model(Outline, element)
|
196
|
-
when 'Background'
|
201
|
+
when 'Background', 'background'
|
197
202
|
feature_model.background = build_child_model(Background, element)
|
198
203
|
else
|
199
|
-
raise(ArgumentError, "Unknown
|
204
|
+
raise(ArgumentError, "Unknown element type: #{element['type']}")
|
200
205
|
end
|
201
206
|
end
|
202
207
|
end
|
@@ -4,6 +4,7 @@ module CukeModeler
|
|
4
4
|
|
5
5
|
class Background < Model
|
6
6
|
|
7
|
+
include Parsing
|
7
8
|
include Parsed
|
8
9
|
include Named
|
9
10
|
include Described
|
@@ -11,6 +12,10 @@ module CukeModeler
|
|
11
12
|
include Sourceable
|
12
13
|
|
13
14
|
|
15
|
+
# The background's keyword
|
16
|
+
attr_accessor :keyword
|
17
|
+
|
18
|
+
|
14
19
|
# Creates a new Background object and, if *source_text* is provided, populates
|
15
20
|
# the object.
|
16
21
|
def initialize(source_text = nil)
|
@@ -41,7 +46,7 @@ module CukeModeler
|
|
41
46
|
def to_s
|
42
47
|
text = ''
|
43
48
|
|
44
|
-
text << "
|
49
|
+
text << "#{@keyword}:#{name_output_string}"
|
45
50
|
text << "\n" + description_output_string unless (description.nil? || description.empty?)
|
46
51
|
text << "\n" unless (steps.empty? || description.nil? || description.empty?)
|
47
52
|
text << "\n" + steps_output_string unless steps.empty?
|
@@ -54,7 +59,7 @@ module CukeModeler
|
|
54
59
|
|
55
60
|
|
56
61
|
def parse_source(source_text)
|
57
|
-
base_file_string = "
|
62
|
+
base_file_string = "#{dialect_feature_keyword}: Fake feature to parse\n"
|
58
63
|
source_text = base_file_string + source_text
|
59
64
|
|
60
65
|
parsed_file = Parsing::parse_text(source_text, 'cuke_modeler_stand_alone_background.feature')
|
@@ -5,6 +5,7 @@ module CukeModeler
|
|
5
5
|
class Cell < Model
|
6
6
|
|
7
7
|
include Sourceable
|
8
|
+
include Parsing
|
8
9
|
include Parsed
|
9
10
|
|
10
11
|
|
@@ -35,7 +36,7 @@ module CukeModeler
|
|
35
36
|
|
36
37
|
|
37
38
|
def parse_source(source_text)
|
38
|
-
base_file_string = "
|
39
|
+
base_file_string = "#{dialect_feature_keyword}: Fake feature to parse\n#{dialect_scenario_keyword}:\n#{dialect_step_keyword} fake step\n"
|
39
40
|
source_text = base_file_string + '|' + source_text + '|'
|
40
41
|
|
41
42
|
parsed_file = Parsing::parse_text(source_text, 'cuke_modeler_stand_alone_cell.feature')
|
@@ -4,6 +4,7 @@ module CukeModeler
|
|
4
4
|
|
5
5
|
class DocString < Model
|
6
6
|
|
7
|
+
include Parsing
|
7
8
|
include Parsed
|
8
9
|
include Sourceable
|
9
10
|
|
@@ -39,7 +40,7 @@ module CukeModeler
|
|
39
40
|
|
40
41
|
|
41
42
|
def parse_source(source_text)
|
42
|
-
base_file_string = "
|
43
|
+
base_file_string = "#{dialect_feature_keyword}:\n#{dialect_scenario_keyword}:\n#{dialect_step_keyword} step\n"
|
43
44
|
source_text = base_file_string + source_text
|
44
45
|
|
45
46
|
parsed_file = Parsing::parse_text(source_text, 'cuke_modeler_stand_alone_doc_string.feature')
|
@@ -4,6 +4,7 @@ module CukeModeler
|
|
4
4
|
|
5
5
|
class Example < Model
|
6
6
|
|
7
|
+
include Parsing
|
7
8
|
include Parsed
|
8
9
|
include Named
|
9
10
|
include Described
|
@@ -11,6 +12,9 @@ module CukeModeler
|
|
11
12
|
include Taggable
|
12
13
|
|
13
14
|
|
15
|
+
# The example's keyword
|
16
|
+
attr_accessor :keyword
|
17
|
+
|
14
18
|
# The row models in the example table
|
15
19
|
attr_accessor :rows
|
16
20
|
|
@@ -101,10 +105,10 @@ module CukeModeler
|
|
101
105
|
text = ''
|
102
106
|
|
103
107
|
text << tag_output_string + "\n" unless tags.empty?
|
104
|
-
text << "
|
108
|
+
text << "#{@keyword}:#{name_output_string}"
|
105
109
|
text << "\n" + description_output_string unless (description.nil? || description.empty?)
|
106
|
-
text << "\n" unless (description.nil? || description.empty?)
|
107
|
-
text << "\n" + parameters_output_string
|
110
|
+
text << "\n" unless (rows.empty? || description.nil? || description.empty?)
|
111
|
+
text << "\n" + parameters_output_string if parameter_row
|
108
112
|
text << "\n" + rows_output_string unless argument_rows.empty?
|
109
113
|
|
110
114
|
text
|
@@ -115,7 +119,7 @@ module CukeModeler
|
|
115
119
|
|
116
120
|
|
117
121
|
def parse_source(source_text)
|
118
|
-
base_file_string = "
|
122
|
+
base_file_string = "#{dialect_feature_keyword}: Fake feature to parse\n#{dialect_outline_keyword}:\n#{dialect_step_keyword} fake step\n"
|
119
123
|
source_text = base_file_string + source_text
|
120
124
|
|
121
125
|
parsed_file = Parsing::parse_text(source_text, 'cuke_modeler_stand_alone_example.feature')
|
@@ -11,6 +11,9 @@ module CukeModeler
|
|
11
11
|
include Sourceable
|
12
12
|
|
13
13
|
|
14
|
+
# The keyword for the feature
|
15
|
+
attr_accessor :keyword
|
16
|
+
|
14
17
|
# The Background object contained by the Feature
|
15
18
|
attr_accessor :background
|
16
19
|
|
@@ -72,7 +75,7 @@ module CukeModeler
|
|
72
75
|
text = ''
|
73
76
|
|
74
77
|
text << tag_output_string + "\n" unless tags.empty?
|
75
|
-
text << "
|
78
|
+
text << "#{@keyword}:#{name_output_string}"
|
76
79
|
text << "\n" + description_output_string unless (description.nil? || description.empty?)
|
77
80
|
text << "\n\n" + background_output_string if background
|
78
81
|
text << "\n\n" + tests_output_string unless tests.empty?
|
@@ -4,6 +4,7 @@ module CukeModeler
|
|
4
4
|
|
5
5
|
class Outline < Model
|
6
6
|
|
7
|
+
include Parsing
|
7
8
|
include Parsed
|
8
9
|
include Named
|
9
10
|
include Described
|
@@ -12,6 +13,9 @@ module CukeModeler
|
|
12
13
|
include Taggable
|
13
14
|
|
14
15
|
|
16
|
+
# The outline's keyword
|
17
|
+
attr_accessor :keyword
|
18
|
+
|
15
19
|
# The Example objects contained by the Outline
|
16
20
|
attr_accessor :examples
|
17
21
|
|
@@ -49,7 +53,7 @@ module CukeModeler
|
|
49
53
|
text = ''
|
50
54
|
|
51
55
|
text << tag_output_string + "\n" unless tags.empty?
|
52
|
-
text << "
|
56
|
+
text << "#{@keyword}:#{name_output_string}"
|
53
57
|
text << "\n" + description_output_string unless (description.nil? || description.empty?)
|
54
58
|
text << "\n" unless (steps.empty? || description.nil? || description.empty?)
|
55
59
|
text << "\n" + steps_output_string unless steps.empty?
|
@@ -63,7 +67,7 @@ module CukeModeler
|
|
63
67
|
|
64
68
|
|
65
69
|
def parse_source(source_text)
|
66
|
-
base_file_string = "
|
70
|
+
base_file_string = "#{dialect_feature_keyword}: Fake feature to parse\n"
|
67
71
|
source_text = base_file_string + source_text
|
68
72
|
|
69
73
|
parsed_file = Parsing::parse_text(source_text, 'cuke_modeler_stand_alone_outline.feature')
|
@@ -5,6 +5,7 @@ module CukeModeler
|
|
5
5
|
class Row < Model
|
6
6
|
|
7
7
|
include Sourceable
|
8
|
+
include Parsing
|
8
9
|
include Parsed
|
9
10
|
|
10
11
|
# The cell models that make up the row
|
@@ -37,7 +38,7 @@ module CukeModeler
|
|
37
38
|
|
38
39
|
|
39
40
|
def parse_source(source_text)
|
40
|
-
base_file_string = "
|
41
|
+
base_file_string = "#{dialect_feature_keyword}: Fake feature to parse\n#{dialect_scenario_keyword}:\n#{dialect_step_keyword} fake step\n"
|
41
42
|
source_text = base_file_string + source_text
|
42
43
|
|
43
44
|
parsed_file = Parsing::parse_text(source_text, 'cuke_modeler_stand_alone_row.feature')
|
@@ -4,6 +4,7 @@ module CukeModeler
|
|
4
4
|
|
5
5
|
class Scenario < Model
|
6
6
|
|
7
|
+
include Parsing
|
7
8
|
include Parsed
|
8
9
|
include Named
|
9
10
|
include Described
|
@@ -12,6 +13,10 @@ module CukeModeler
|
|
12
13
|
include Taggable
|
13
14
|
|
14
15
|
|
16
|
+
# The scenario's keyword
|
17
|
+
attr_accessor :keyword
|
18
|
+
|
19
|
+
|
15
20
|
# Creates a new Scenario object and, if *source_text* is provided, populates the
|
16
21
|
# object.
|
17
22
|
def initialize(source_text = nil)
|
@@ -44,7 +49,7 @@ module CukeModeler
|
|
44
49
|
text = ''
|
45
50
|
|
46
51
|
text << tag_output_string + "\n" unless tags.empty?
|
47
|
-
text << "
|
52
|
+
text << "#{@keyword}:#{name_output_string}"
|
48
53
|
text << "\n" + description_output_string unless (description.nil? || description.empty?)
|
49
54
|
text << "\n" unless (steps.empty? || description.nil? || description.empty?)
|
50
55
|
text << "\n" + steps_output_string unless steps.empty?
|
@@ -57,7 +62,7 @@ module CukeModeler
|
|
57
62
|
|
58
63
|
|
59
64
|
def parse_source(source_text)
|
60
|
-
base_file_string = "
|
65
|
+
base_file_string = "#{dialect_feature_keyword}: Fake feature to parse\n"
|
61
66
|
source_text = base_file_string + source_text
|
62
67
|
|
63
68
|
parsed_file = Parsing::parse_text(source_text, 'cuke_modeler_stand_alone_scenario.feature')
|
@@ -5,6 +5,7 @@ module CukeModeler
|
|
5
5
|
class Step < Model
|
6
6
|
|
7
7
|
include Sourceable
|
8
|
+
include Parsing
|
8
9
|
include Parsed
|
9
10
|
|
10
11
|
|
@@ -56,7 +57,7 @@ module CukeModeler
|
|
56
57
|
|
57
58
|
|
58
59
|
def parse_source(source_text)
|
59
|
-
base_file_string = "
|
60
|
+
base_file_string = "#{dialect_feature_keyword}: Fake feature to parse\n#{dialect_scenario_keyword}:\n"
|
60
61
|
source_text = base_file_string + source_text
|
61
62
|
|
62
63
|
parsed_file = Parsing::parse_text(source_text, 'cuke_modeler_stand_alone_step.feature')
|