cuke_modeler 2.1.0 → 3.4.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 (146) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +53 -1
  3. data/README.md +14 -16
  4. data/cuke_modeler.gemspec +33 -21
  5. data/lib/cuke_modeler.rb +2 -1
  6. data/lib/cuke_modeler/adapters/gherkin_10_adapter.rb +13 -0
  7. data/lib/cuke_modeler/adapters/gherkin_11_adapter.rb +13 -0
  8. data/lib/cuke_modeler/adapters/gherkin_12_adapter.rb +13 -0
  9. data/lib/cuke_modeler/adapters/gherkin_13_adapter.rb +13 -0
  10. data/lib/cuke_modeler/adapters/gherkin_14_adapter.rb +13 -0
  11. data/lib/cuke_modeler/adapters/gherkin_15_adapter.rb +13 -0
  12. data/lib/cuke_modeler/adapters/gherkin_9_adapter.rb +356 -4
  13. data/lib/cuke_modeler/containing.rb +41 -89
  14. data/lib/cuke_modeler/described.rb +40 -1
  15. data/lib/cuke_modeler/models/background.rb +12 -12
  16. data/lib/cuke_modeler/models/cell.rb +14 -8
  17. data/lib/cuke_modeler/models/comment.rb +6 -6
  18. data/lib/cuke_modeler/models/directory.rb +14 -18
  19. data/lib/cuke_modeler/models/doc_string.rb +11 -8
  20. data/lib/cuke_modeler/models/example.rb +64 -46
  21. data/lib/cuke_modeler/models/feature.rb +38 -20
  22. data/lib/cuke_modeler/models/feature_file.rb +6 -8
  23. data/lib/cuke_modeler/models/model.rb +2 -1
  24. data/lib/cuke_modeler/models/outline.rb +20 -15
  25. data/lib/cuke_modeler/models/row.rb +11 -8
  26. data/lib/cuke_modeler/models/rule.rb +101 -0
  27. data/lib/cuke_modeler/models/scenario.rb +18 -13
  28. data/lib/cuke_modeler/models/step.rb +41 -19
  29. data/lib/cuke_modeler/models/table.rb +10 -7
  30. data/lib/cuke_modeler/models/tag.rb +10 -6
  31. data/lib/cuke_modeler/named.rb +5 -1
  32. data/lib/cuke_modeler/nested.rb +22 -18
  33. data/lib/cuke_modeler/parsed.rb +8 -0
  34. data/lib/cuke_modeler/parsing.rb +55 -74
  35. data/lib/cuke_modeler/sourceable.rb +8 -0
  36. data/lib/cuke_modeler/stepped.rb +8 -0
  37. data/lib/cuke_modeler/taggable.rb +9 -1
  38. data/lib/cuke_modeler/version.rb +1 -1
  39. data/testing/cucumber/features/modeling/feature_modeling.feature +28 -7
  40. data/testing/cucumber/features/modeling/feature_output.feature +45 -23
  41. data/testing/cucumber/features/modeling/rule_modeling.feature +108 -0
  42. data/testing/cucumber/features/modeling/rule_output.feature +111 -0
  43. metadata +68 -161
  44. data/.gitignore +0 -18
  45. data/.simplecov +0 -7
  46. data/.travis.yml +0 -81
  47. data/Gemfile +0 -44
  48. data/Rakefile +0 -73
  49. data/appveyor.yml +0 -88
  50. data/lib/cuke_modeler/adapters/gherkin_2_adapter.rb +0 -274
  51. data/lib/cuke_modeler/adapters/gherkin_3_adapter.rb +0 -297
  52. data/lib/cuke_modeler/adapters/gherkin_4_adapter.rb +0 -309
  53. data/lib/cuke_modeler/adapters/gherkin_5_adapter.rb +0 -12
  54. data/lib/cuke_modeler/adapters/gherkin_6_adapter.rb +0 -310
  55. data/lib/cuke_modeler/adapters/gherkin_7_adapter.rb +0 -307
  56. data/lib/cuke_modeler/adapters/gherkin_8_adapter.rb +0 -12
  57. data/testing/cucumber/step_definitions/action_steps.rb +0 -13
  58. data/testing/cucumber/step_definitions/background_steps.rb +0 -1
  59. data/testing/cucumber/step_definitions/directory_steps.rb +0 -6
  60. data/testing/cucumber/step_definitions/doc_string_steps.rb +0 -1
  61. data/testing/cucumber/step_definitions/feature_file_steps.rb +0 -16
  62. data/testing/cucumber/step_definitions/feature_steps.rb +0 -7
  63. data/testing/cucumber/step_definitions/modeling_steps.rb +0 -49
  64. data/testing/cucumber/step_definitions/setup_steps.rb +0 -32
  65. data/testing/cucumber/step_definitions/step_steps.rb +0 -3
  66. data/testing/cucumber/step_definitions/table_steps.rb +0 -1
  67. data/testing/cucumber/step_definitions/tag_steps.rb +0 -3
  68. data/testing/cucumber/step_definitions/verification_steps.rb +0 -181
  69. data/testing/cucumber/support/env.rb +0 -30
  70. data/testing/dialect_helper.rb +0 -48
  71. data/testing/file_helper.rb +0 -47
  72. data/testing/gemfiles/gherkin2.gemfile +0 -33
  73. data/testing/gemfiles/gherkin3.gemfile +0 -26
  74. data/testing/gemfiles/gherkin4.gemfile +0 -27
  75. data/testing/gemfiles/gherkin5.gemfile +0 -27
  76. data/testing/gemfiles/gherkin6.gemfile +0 -10
  77. data/testing/gemfiles/gherkin7.gemfile +0 -9
  78. data/testing/gemfiles/gherkin8.gemfile +0 -9
  79. data/testing/gemfiles/gherkin9.gemfile +0 -9
  80. data/testing/helper_methods.rb +0 -23
  81. data/testing/rspec/spec/integration/adapters/gherkin_2_adapter_spec.rb +0 -166
  82. data/testing/rspec/spec/integration/adapters/gherkin_3_adapter_spec.rb +0 -166
  83. data/testing/rspec/spec/integration/adapters/gherkin_4_adapter_spec.rb +0 -165
  84. data/testing/rspec/spec/integration/adapters/gherkin_5_adapter_spec.rb +0 -165
  85. data/testing/rspec/spec/integration/adapters/gherkin_6_adapter_spec.rb +0 -159
  86. data/testing/rspec/spec/integration/adapters/gherkin_7_adapter_spec.rb +0 -162
  87. data/testing/rspec/spec/integration/adapters/gherkin_8_adapter_spec.rb +0 -162
  88. data/testing/rspec/spec/integration/adapters/gherkin_9_adapter_spec.rb +0 -162
  89. data/testing/rspec/spec/integration/models/background_integration_spec.rb +0 -438
  90. data/testing/rspec/spec/integration/models/cell_integration_spec.rb +0 -338
  91. data/testing/rspec/spec/integration/models/comment_integration_spec.rb +0 -180
  92. data/testing/rspec/spec/integration/models/directory_integration_spec.rb +0 -218
  93. data/testing/rspec/spec/integration/models/doc_string_integration_spec.rb +0 -398
  94. data/testing/rspec/spec/integration/models/example_integration_spec.rb +0 -753
  95. data/testing/rspec/spec/integration/models/feature_file_integration_spec.rb +0 -276
  96. data/testing/rspec/spec/integration/models/feature_integration_spec.rb +0 -655
  97. data/testing/rspec/spec/integration/models/model_integration_spec.rb +0 -15
  98. data/testing/rspec/spec/integration/models/outline_integration_spec.rb +0 -619
  99. data/testing/rspec/spec/integration/models/row_integration_spec.rb +0 -303
  100. data/testing/rspec/spec/integration/models/scenario_integration_spec.rb +0 -475
  101. data/testing/rspec/spec/integration/models/step_integration_spec.rb +0 -573
  102. data/testing/rspec/spec/integration/models/table_integration_spec.rb +0 -333
  103. data/testing/rspec/spec/integration/models/tag_integration_spec.rb +0 -271
  104. data/testing/rspec/spec/integration/nested_integration_spec.rb +0 -91
  105. data/testing/rspec/spec/integration/parsing_integration_spec.rb +0 -143
  106. data/testing/rspec/spec/integration/shared/models_integration_specs.rb +0 -18
  107. data/testing/rspec/spec/spec_helper.rb +0 -129
  108. data/testing/rspec/spec/unit/cuke_modeler_unit_spec.rb +0 -25
  109. data/testing/rspec/spec/unit/described_unit_spec.rb +0 -23
  110. data/testing/rspec/spec/unit/models/background_unit_spec.rb +0 -83
  111. data/testing/rspec/spec/unit/models/cell_unit_spec.rb +0 -68
  112. data/testing/rspec/spec/unit/models/comment_unit_spec.rb +0 -68
  113. data/testing/rspec/spec/unit/models/directory_unit_spec.rb +0 -127
  114. data/testing/rspec/spec/unit/models/doc_string_unit_spec.rb +0 -100
  115. data/testing/rspec/spec/unit/models/example_unit_spec.rb +0 -133
  116. data/testing/rspec/spec/unit/models/feature_file_unit_spec.rb +0 -125
  117. data/testing/rspec/spec/unit/models/feature_unit_spec.rb +0 -157
  118. data/testing/rspec/spec/unit/models/model_unit_spec.rb +0 -15
  119. data/testing/rspec/spec/unit/models/outline_unit_spec.rb +0 -117
  120. data/testing/rspec/spec/unit/models/row_unit_spec.rb +0 -68
  121. data/testing/rspec/spec/unit/models/scenario_unit_spec.rb +0 -86
  122. data/testing/rspec/spec/unit/models/step_unit_spec.rb +0 -109
  123. data/testing/rspec/spec/unit/models/table_unit_spec.rb +0 -77
  124. data/testing/rspec/spec/unit/models/tag_unit_spec.rb +0 -68
  125. data/testing/rspec/spec/unit/named_unit_spec.rb +0 -23
  126. data/testing/rspec/spec/unit/nested_unit_spec.rb +0 -43
  127. data/testing/rspec/spec/unit/parsed_unit_spec.rb +0 -27
  128. data/testing/rspec/spec/unit/parsing_unit_spec.rb +0 -54
  129. data/testing/rspec/spec/unit/shared/bare_bones_models_unit_specs.rb +0 -14
  130. data/testing/rspec/spec/unit/shared/containing_models_unit_specs.rb +0 -127
  131. data/testing/rspec/spec/unit/shared/described_models_unit_specs.rb +0 -38
  132. data/testing/rspec/spec/unit/shared/keyworded_models_unit_specs.rb +0 -58
  133. data/testing/rspec/spec/unit/shared/models_unit_specs.rb +0 -15
  134. data/testing/rspec/spec/unit/shared/named_models_unit_specs.rb +0 -39
  135. data/testing/rspec/spec/unit/shared/nested_models_unit_specs.rb +0 -51
  136. data/testing/rspec/spec/unit/shared/parsed_models_unit_specs.rb +0 -39
  137. data/testing/rspec/spec/unit/shared/prepopulated_models_unit_specs.rb +0 -18
  138. data/testing/rspec/spec/unit/shared/sourced_models_unit_specs.rb +0 -39
  139. data/testing/rspec/spec/unit/shared/stepped_models_unit_specs.rb +0 -46
  140. data/testing/rspec/spec/unit/shared/stringifiable_models_unit_specs.rb +0 -18
  141. data/testing/rspec/spec/unit/shared/tagged_models_unit_specs.rb +0 -72
  142. data/testing/rspec/spec/unit/sourceable_unit_spec.rb +0 -27
  143. data/testing/rspec/spec/unit/stepped_unit_spec.rb +0 -23
  144. data/testing/rspec/spec/unit/taggable_unit_spec.rb +0 -69
  145. data/testing/test_languages.json +0 -45
  146. data/todo.txt +0 -25
@@ -1,125 +0,0 @@
1
- require "#{File.dirname(__FILE__)}/../../spec_helper"
2
-
3
-
4
- describe 'FeatureFile, Unit', :unit_test => true do
5
-
6
- let(:clazz) { CukeModeler::FeatureFile }
7
- let(:feature_file) { clazz.new }
8
-
9
-
10
- describe 'common behavior' do
11
-
12
- it_should_behave_like 'a model'
13
- it_should_behave_like 'a parsed model'
14
-
15
- end
16
-
17
-
18
- describe 'unique behavior' do
19
-
20
- it 'has a path' do
21
- expect(feature_file).to respond_to(:path)
22
- end
23
-
24
- it 'can change its path' do
25
- expect(feature_file).to respond_to(:path=)
26
-
27
- feature_file.path = :some_path
28
- expect(feature_file.path).to eq(:some_path)
29
- feature_file.path = :some_other_path
30
- expect(feature_file.path).to eq(:some_other_path)
31
- end
32
-
33
- it 'has a feature' do
34
- expect(feature_file).to respond_to(:feature)
35
- end
36
-
37
- it 'can change its feature' do
38
- expect(feature_file).to respond_to(:feature=)
39
-
40
- feature_file.feature = :some_features
41
- expect(feature_file.feature).to eq(:some_features)
42
- feature_file.feature = :some_other_features
43
- expect(feature_file.feature).to eq(:some_other_features)
44
- end
45
-
46
- it 'has comments' do
47
- expect(feature_file).to respond_to(:comments)
48
- end
49
-
50
- it 'can change its comments' do
51
- expect(feature_file).to respond_to(:comments=)
52
-
53
- feature_file.comments = :some_comments
54
- expect(feature_file.comments).to eq(:some_comments)
55
- feature_file.comments = :some_other_comments
56
- expect(feature_file.comments).to eq(:some_other_comments)
57
- end
58
-
59
- it 'knows the name of the file that it is modeling' do
60
- expect(feature_file).to respond_to(:name)
61
- end
62
-
63
-
64
- it 'derives its file name from its path' do
65
- feature_file.path = 'path/to/foo'
66
-
67
- expect(feature_file.name).to eq('foo')
68
- end
69
-
70
-
71
- describe 'abstract instantiation' do
72
-
73
- context 'a new feature file object' do
74
-
75
- let(:feature_file) { clazz.new }
76
-
77
-
78
- it 'starts with no path' do
79
- expect(feature_file.path).to be_nil
80
- end
81
-
82
- it 'starts with no name' do
83
- expect(feature_file.name).to be_nil
84
- end
85
-
86
- it 'starts with no feature' do
87
- expect(feature_file.feature).to be_nil
88
- end
89
-
90
- it 'starts with no comments' do
91
- expect(feature_file.comments).to eq([])
92
- end
93
-
94
- end
95
-
96
- end
97
-
98
- it 'contains a feature' do
99
- feature = :a_feature
100
- everything = [feature]
101
-
102
- feature_file.feature = feature
103
-
104
- expect(feature_file.children).to match_array(everything)
105
- end
106
-
107
-
108
- describe 'feature file output' do
109
-
110
- context 'from abstract instantiation' do
111
-
112
- let(:feature_file) { clazz.new }
113
-
114
-
115
- it 'can output an empty feature file' do
116
- expect { feature_file.to_s }.to_not raise_error
117
- end
118
-
119
- end
120
-
121
- end
122
-
123
- end
124
-
125
- end
@@ -1,157 +0,0 @@
1
- require "#{File.dirname(__FILE__)}/../../spec_helper"
2
-
3
-
4
- describe 'Feature, Unit', :unit_test => true do
5
-
6
- let(:clazz) { CukeModeler::Feature }
7
- let(:feature) { clazz.new }
8
-
9
-
10
- describe 'common behavior' do
11
-
12
- it_should_behave_like 'a model'
13
- it_should_behave_like 'a keyworded model'
14
- it_should_behave_like 'a named model'
15
- it_should_behave_like 'a described model'
16
- it_should_behave_like 'a tagged model'
17
- it_should_behave_like 'a sourced model'
18
- it_should_behave_like 'a parsed model'
19
-
20
- end
21
-
22
-
23
- describe 'unique behavior' do
24
-
25
- it 'will complain about unknown element types' do
26
- parsed_element = {'description' => '',
27
- 'elements' => [{'keyword' => 'Scenario', 'description' => ''},
28
- {'keyword' => 'New Type', 'description' => ''}]}
29
-
30
- expect { clazz.new(parsed_element) }.to raise_error(ArgumentError)
31
- end
32
-
33
- it 'has a background' do
34
- expect(feature).to respond_to(:background)
35
- end
36
-
37
- it 'can change its background' do
38
- expect(feature).to respond_to(:background=)
39
-
40
- feature.background = :some_background
41
- expect(feature.background).to eq(:some_background)
42
- feature.background = :some_other_background
43
- expect(feature.background).to eq(:some_other_background)
44
- end
45
-
46
- it 'knows whether or not it presently has a background - has_background?' do
47
- feature.background = :a_background
48
- expect(feature).to have_background
49
- feature.background = nil
50
- expect(feature).to_not have_background
51
- end
52
-
53
- it 'has tests' do
54
- expect(feature).to respond_to(:tests)
55
- end
56
-
57
- it 'can change its tests' do
58
- expect(feature).to respond_to(:tests=)
59
-
60
- feature.tests = :some_tests
61
- expect(feature.tests).to eq(:some_tests)
62
- feature.tests = :some_other_tests
63
- expect(feature.tests).to eq(:some_other_tests)
64
- end
65
-
66
- it 'can selectively access its scenarios' do
67
- expect(feature).to respond_to(:scenarios)
68
- end
69
-
70
- it 'can selectively access its outlines' do
71
- expect(feature).to respond_to(:outlines)
72
- end
73
-
74
- it 'finds no scenarios or outlines when it has no tests' do
75
- feature.tests = []
76
-
77
- expect(feature.scenarios).to be_empty
78
- expect(feature.outlines).to be_empty
79
- end
80
-
81
- it 'contains a background, tests, and tags' do
82
- tags = [:tag_1, :tagt_2]
83
- tests = [:test_1, :test_2]
84
- background = :a_background
85
- everything = [background] + tests + tags
86
-
87
- feature.background = background
88
- feature.tests = tests
89
- feature.tags = tags
90
-
91
- expect(feature.children).to match_array(everything)
92
- end
93
-
94
- it 'contains a background only if one is present' do
95
- tests = [:test_1, :test_2]
96
- background = nil
97
- everything = tests
98
-
99
- feature.background = background
100
- feature.tests = tests
101
-
102
- expect(feature.children).to match_array(everything)
103
- end
104
-
105
-
106
- context 'from abstract instantiation' do
107
-
108
- let(:feature) { clazz.new }
109
-
110
-
111
- it 'starts with no background' do
112
- expect(feature.background).to be_nil
113
- end
114
-
115
- it 'starts with no tests' do
116
- expect(feature.tests).to eq([])
117
- end
118
-
119
- end
120
-
121
-
122
- describe 'feature output' do
123
-
124
- context 'from abstract instantiation' do
125
-
126
- let(:feature) { clazz.new }
127
-
128
-
129
- it 'can output an empty feature' do
130
- expect { feature.to_s }.to_not raise_error
131
- end
132
-
133
- it 'can output a feature that has only a keyword' do
134
- feature.keyword = 'foo'
135
-
136
- expect(feature.to_s).to eq('foo:')
137
- end
138
-
139
- it 'can output a feature that has only a name' do
140
- feature.name = 'a name'
141
-
142
- expect { feature.to_s }.to_not raise_error
143
- end
144
-
145
- it 'can output a feature that has only a description' do
146
- feature.description = 'a description'
147
-
148
- expect { feature.to_s }.to_not raise_error
149
- end
150
-
151
- end
152
-
153
- end
154
-
155
- end
156
-
157
- end
@@ -1,15 +0,0 @@
1
- require "#{File.dirname(__FILE__)}/../../spec_helper"
2
-
3
-
4
- describe 'Model, Unit' do
5
-
6
- let(:clazz) { CukeModeler::Model }
7
-
8
-
9
- describe 'common behavior' do
10
-
11
- it_should_behave_like 'a model'
12
-
13
- end
14
-
15
- end
@@ -1,117 +0,0 @@
1
- require "#{File.dirname(__FILE__)}/../../spec_helper"
2
-
3
-
4
- describe 'Outline, Unit', :unit_test => true do
5
-
6
- let(:clazz) { CukeModeler::Outline }
7
- let(:outline) { clazz.new }
8
-
9
-
10
- describe 'common behavior' do
11
-
12
- it_should_behave_like 'a model'
13
- it_should_behave_like 'a keyworded model'
14
- it_should_behave_like 'a named model'
15
- it_should_behave_like 'a described model'
16
- it_should_behave_like 'a stepped model'
17
- it_should_behave_like 'a tagged model'
18
- it_should_behave_like 'a sourced model'
19
- it_should_behave_like 'a parsed model'
20
-
21
- end
22
-
23
-
24
- describe 'unique behavior' do
25
-
26
- it 'has examples' do
27
- expect(outline).to respond_to(:examples)
28
- end
29
-
30
- it 'can change its examples' do
31
- expect(outline).to respond_to(:examples=)
32
-
33
- outline.examples = :some_examples
34
- expect(outline.examples).to eq(:some_examples)
35
- outline.examples = :some_other_examples
36
- expect(outline.examples).to eq(:some_other_examples)
37
- end
38
-
39
-
40
- describe 'abstract instantiation' do
41
-
42
- context 'a new outline object' do
43
-
44
- let(:outline) { clazz.new }
45
-
46
-
47
- it 'starts with no examples' do
48
- expect(outline.examples).to eq([])
49
- end
50
-
51
- end
52
-
53
- end
54
-
55
- it 'contains steps, examples, and tags' do
56
- tags = [:tag_1, :tagt_2]
57
- steps = [:step_1, :step_2, :step_3]
58
- examples = [:example_1, :example_2, :example_3]
59
- everything = steps + examples + tags
60
-
61
- outline.steps = steps
62
- outline.examples = examples
63
- outline.tags = tags
64
-
65
- expect(outline.children).to match_array(everything)
66
- end
67
-
68
-
69
- describe 'comparison' do
70
-
71
- it 'can gracefully be compared to other types of objects' do
72
- # Some common types of object
73
- [1, 'foo', :bar, [], {}].each do |thing|
74
- expect { outline == thing }.to_not raise_error
75
- expect(outline == thing).to be false
76
- end
77
- end
78
-
79
- end
80
-
81
-
82
- describe 'outline output' do
83
-
84
- context 'from abstract instantiation' do
85
-
86
- let(:outline) { clazz.new }
87
-
88
-
89
- it 'can output an empty outline' do
90
- expect { outline.to_s }.to_not raise_error
91
- end
92
-
93
- it 'can output an outline that has only a keyword' do
94
- outline.keyword = 'foo'
95
-
96
- expect(outline.to_s).to eq('foo:')
97
- end
98
-
99
- it 'can output an outline that has only a name' do
100
- outline.name = 'a name'
101
-
102
- expect { outline.to_s }.to_not raise_error
103
- end
104
-
105
- it 'can output an outline that has only a description' do
106
- outline.description = 'a description'
107
-
108
- expect { outline.to_s }.to_not raise_error
109
- end
110
-
111
- end
112
-
113
- end
114
-
115
- end
116
-
117
- end
@@ -1,68 +0,0 @@
1
- require "#{File.dirname(__FILE__)}/../../spec_helper"
2
-
3
-
4
- describe 'Row, Unit', :unit_test => true do
5
-
6
- let(:clazz) { CukeModeler::Row }
7
- let(:row) { clazz.new }
8
-
9
-
10
- describe 'common behavior' do
11
-
12
- it_should_behave_like 'a model'
13
- it_should_behave_like 'a sourced model'
14
- it_should_behave_like 'a parsed model'
15
-
16
- end
17
-
18
-
19
- describe 'unique behavior' do
20
-
21
- it 'has cells' do
22
- expect(row).to respond_to(:cells)
23
- end
24
-
25
- it 'can change its cells' do
26
- expect(row).to respond_to(:cells=)
27
-
28
- row.cells = :some_cells
29
- expect(row.cells).to eq(:some_cells)
30
- row.cells = :some_other_cells
31
- expect(row.cells).to eq(:some_other_cells)
32
- end
33
-
34
-
35
- describe 'abstract instantiation' do
36
-
37
- context 'a new row object' do
38
-
39
- let(:row) { clazz.new }
40
-
41
-
42
- it 'starts with no cells' do
43
- expect(row.cells).to eq([])
44
- end
45
-
46
- end
47
-
48
- end
49
-
50
-
51
- describe 'row output' do
52
-
53
- context 'from abstract instantiation' do
54
-
55
- let(:row) { clazz.new }
56
-
57
-
58
- it 'can output an empty row' do
59
- expect { row.to_s }.to_not raise_error
60
- end
61
-
62
- end
63
-
64
- end
65
-
66
- end
67
-
68
- end