Class: Cucumber::Ast::TreeWalker
- Defined in:
- lib/cucumber/ast/tree_walker.rb
Overview
Walks the AST, executing steps and notifying listeners
Instance Attribute Summary collapse
-
#options ⇒ Object
:nodoc:.
-
#step_mother ⇒ Object
readonly
:nodoc:.
Instance Method Summary collapse
-
#announce(announcement) ⇒ Object
Print
announcement
. -
#embed(file, mime_type) ⇒ Object
Embed
file
ofmime_type
in the formatter. -
#initialize(step_mother, listeners = [], options = {}, io = STDOUT) ⇒ TreeWalker
constructor
A new instance of TreeWalker.
- #visit_background(background) ⇒ Object
- #visit_background_name(keyword, name, file_colon_line, source_indent) ⇒ Object
- #visit_comment(comment) ⇒ Object
- #visit_comment_line(comment_line) ⇒ Object
- #visit_examples(examples) ⇒ Object
- #visit_examples_array(examples_array) ⇒ Object
- #visit_examples_name(keyword, name) ⇒ Object
-
#visit_exception(exception, status) ⇒ Object
:nodoc:.
- #visit_feature(feature) ⇒ Object
-
#visit_feature_element(feature_element) ⇒ Object
feature_element
is either Scenario or ScenarioOutline. - #visit_feature_name(name) ⇒ Object
- #visit_features(features) ⇒ Object
-
#visit_multiline_arg(multiline_arg) ⇒ Object
:nodoc:.
- #visit_outline_table(outline_table) ⇒ Object
- #visit_py_string(string) ⇒ Object
- #visit_scenario_name(keyword, name, file_colon_line, source_indent) ⇒ Object
- #visit_step(step) ⇒ Object
-
#visit_step_name(keyword, step_match, status, source_indent, background) ⇒ Object
:nodoc:.
- #visit_step_result(keyword, step_match, multiline_arg, status, exception, source_indent, background) ⇒ Object
- #visit_steps(steps) ⇒ Object
- #visit_table_cell(table_cell) ⇒ Object
- #visit_table_cell_value(value, status) ⇒ Object
- #visit_table_row(table_row) ⇒ Object
- #visit_tag_name(tag_name) ⇒ Object
- #visit_tags(tags) ⇒ Object
Constructor Details
#initialize(step_mother, listeners = [], options = {}, io = STDOUT) ⇒ TreeWalker
Returns a new instance of TreeWalker.
8 9 10 |
# File 'lib/cucumber/ast/tree_walker.rb', line 8 def initialize(step_mother, listeners = [], = {}, io = STDOUT) @step_mother, @listeners, @options, @io = step_mother, listeners, , io end |
Instance Attribute Details
#step_mother ⇒ Object (readonly)
:nodoc:
6 7 8 |
# File 'lib/cucumber/ast/tree_walker.rb', line 6 def step_mother @step_mother end |
Instance Method Details
#announce(announcement) ⇒ Object
Print announcement
. This method can be called from within StepDefinitions.
162 163 164 |
# File 'lib/cucumber/ast/tree_walker.rb', line 162 def announce(announcement) broadcast(announcement) end |
#embed(file, mime_type) ⇒ Object
Embed file
of mime_type
in the formatter. This method can be called from within StepDefinitions. For most formatters this is a no-op.
168 169 170 |
# File 'lib/cucumber/ast/tree_walker.rb', line 168 def (file, mime_type) broadcast(file, mime_type) end |
#visit_background(background) ⇒ Object
55 56 57 58 59 |
# File 'lib/cucumber/ast/tree_walker.rb', line 55 def visit_background(background) broadcast(background) do background.accept(self) end end |
#visit_background_name(keyword, name, file_colon_line, source_indent) ⇒ Object
61 62 63 |
# File 'lib/cucumber/ast/tree_walker.rb', line 61 def visit_background_name(keyword, name, file_colon_line, source_indent) broadcast(keyword, name, file_colon_line, source_indent) end |
#visit_comment(comment) ⇒ Object
24 25 26 27 28 |
# File 'lib/cucumber/ast/tree_walker.rb', line 24 def visit_comment(comment) broadcast(comment) do comment.accept(self) end end |
#visit_comment_line(comment_line) ⇒ Object
30 31 32 |
# File 'lib/cucumber/ast/tree_walker.rb', line 30 def visit_comment_line(comment_line) broadcast(comment_line) end |
#visit_examples(examples) ⇒ Object
71 72 73 74 75 |
# File 'lib/cucumber/ast/tree_walker.rb', line 71 def visit_examples(examples) broadcast(examples) do examples.accept(self) end end |
#visit_examples_array(examples_array) ⇒ Object
65 66 67 68 69 |
# File 'lib/cucumber/ast/tree_walker.rb', line 65 def visit_examples_array(examples_array) broadcast(examples_array) do examples_array.accept(self) end end |
#visit_examples_name(keyword, name) ⇒ Object
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/cucumber/ast/tree_walker.rb', line 77 def visit_examples_name(keyword, name) unless keyword =~ /:$/ = <<EOS (::)(::)(::)(::)(::)(::)(::)(::)(::)(::)(::)(::)(::)(::)(::) DEPRECATION WARNING Future versions of Cucumber will not recognize #{keyword} unless it is followed by a colon. Make this change in your features now to prevent this warning from appearing. (::)(::)(::)(::)(::)(::)(::)(::)(::)(::)(::)(::)(::)(::)(::) EOS announce() end broadcast(keyword, name) end |
#visit_exception(exception, status) ⇒ Object
:nodoc:
137 138 139 |
# File 'lib/cucumber/ast/tree_walker.rb', line 137 def visit_exception(exception, status) #:nodoc: broadcast(exception, status) end |
#visit_feature(feature) ⇒ Object
18 19 20 21 22 |
# File 'lib/cucumber/ast/tree_walker.rb', line 18 def visit_feature(feature) broadcast(feature) do feature.accept(self) end end |
#visit_feature_element(feature_element) ⇒ Object
feature_element
is either Scenario or ScenarioOutline
49 50 51 52 53 |
# File 'lib/cucumber/ast/tree_walker.rb', line 49 def visit_feature_element(feature_element) broadcast(feature_element) do feature_element.accept(self) end end |
#visit_feature_name(name) ⇒ Object
44 45 46 |
# File 'lib/cucumber/ast/tree_walker.rb', line 44 def visit_feature_name(name) broadcast(name) end |
#visit_features(features) ⇒ Object
12 13 14 15 16 |
# File 'lib/cucumber/ast/tree_walker.rb', line 12 def visit_features(features) broadcast(features) do features.accept(self) end end |
#visit_multiline_arg(multiline_arg) ⇒ Object
:nodoc:
131 132 133 134 135 |
# File 'lib/cucumber/ast/tree_walker.rb', line 131 def visit_multiline_arg(multiline_arg) #:nodoc: broadcast(multiline_arg) do multiline_arg.accept(self) end end |
#visit_outline_table(outline_table) ⇒ Object
97 98 99 100 101 |
# File 'lib/cucumber/ast/tree_walker.rb', line 97 def visit_outline_table(outline_table) broadcast(outline_table) do outline_table.accept(self) end end |
#visit_py_string(string) ⇒ Object
141 142 143 |
# File 'lib/cucumber/ast/tree_walker.rb', line 141 def visit_py_string(string) broadcast(string) end |
#visit_scenario_name(keyword, name, file_colon_line, source_indent) ⇒ Object
103 104 105 |
# File 'lib/cucumber/ast/tree_walker.rb', line 103 def visit_scenario_name(keyword, name, file_colon_line, source_indent) broadcast(keyword, name, file_colon_line, source_indent) end |
#visit_step(step) ⇒ Object
113 114 115 116 117 |
# File 'lib/cucumber/ast/tree_walker.rb', line 113 def visit_step(step) broadcast(step) do step.accept(self) end end |
#visit_step_name(keyword, step_match, status, source_indent, background) ⇒ Object
:nodoc:
127 128 129 |
# File 'lib/cucumber/ast/tree_walker.rb', line 127 def visit_step_name(keyword, step_match, status, source_indent, background) #:nodoc: broadcast(keyword, step_match, status, source_indent, background) end |
#visit_step_result(keyword, step_match, multiline_arg, status, exception, source_indent, background) ⇒ Object
119 120 121 122 123 124 125 |
# File 'lib/cucumber/ast/tree_walker.rb', line 119 def visit_step_result(keyword, step_match, multiline_arg, status, exception, source_indent, background) broadcast(keyword, step_match, multiline_arg, status, exception, source_indent, background) do visit_step_name(keyword, step_match, status, source_indent, background) visit_multiline_arg(multiline_arg) if multiline_arg visit_exception(exception, status) if exception end end |
#visit_steps(steps) ⇒ Object
107 108 109 110 111 |
# File 'lib/cucumber/ast/tree_walker.rb', line 107 def visit_steps(steps) broadcast(steps) do steps.accept(self) end end |
#visit_table_cell(table_cell) ⇒ Object
151 152 153 154 155 |
# File 'lib/cucumber/ast/tree_walker.rb', line 151 def visit_table_cell(table_cell) broadcast(table_cell) do table_cell.accept(self) end end |
#visit_table_cell_value(value, status) ⇒ Object
157 158 159 |
# File 'lib/cucumber/ast/tree_walker.rb', line 157 def visit_table_cell_value(value, status) broadcast(value, status) end |
#visit_table_row(table_row) ⇒ Object
145 146 147 148 149 |
# File 'lib/cucumber/ast/tree_walker.rb', line 145 def visit_table_row(table_row) broadcast(table_row) do table_row.accept(self) end end |
#visit_tag_name(tag_name) ⇒ Object
40 41 42 |
# File 'lib/cucumber/ast/tree_walker.rb', line 40 def visit_tag_name(tag_name) broadcast(tag_name) end |
#visit_tags(tags) ⇒ Object
34 35 36 37 38 |
# File 'lib/cucumber/ast/tree_walker.rb', line 34 def () broadcast() do .accept(self) end end |