Class: Herb::Visitor
- Inherits:
-
Object
- Object
- Herb::Visitor
- Includes:
- AST::Helpers
- Defined in:
- lib/herb/visitor.rb
Direct Known Subclasses
ActionView::RenderCallVisitor, Engine::Compiler, Engine::DebugVisitor, Engine::Validator
Instance Method Summary collapse
-
#visit(node) ⇒ Object
: (Herb::AST::Node?) -> void.
-
#visit_all(nodes) ⇒ Object
: (Array) -> void.
-
#visit_cdata_node(node) ⇒ Object
: (Herb::AST::CDATANode) -> void.
-
#visit_child_nodes(node) ⇒ Object
: (Herb::AST::Node) -> void.
-
#visit_document_node(node) ⇒ Object
: (Herb::AST::DocumentNode) -> void.
-
#visit_erb_begin_node(node) ⇒ Object
: (Herb::AST::ERBBeginNode) -> void.
-
#visit_erb_block_node(node) ⇒ Object
: (Herb::AST::ERBBlockNode) -> void.
-
#visit_erb_case_match_node(node) ⇒ Object
: (Herb::AST::ERBCaseMatchNode) -> void.
-
#visit_erb_case_node(node) ⇒ Object
: (Herb::AST::ERBCaseNode) -> void.
-
#visit_erb_content_node(node) ⇒ Object
: (Herb::AST::ERBContentNode) -> void.
-
#visit_erb_else_node(node) ⇒ Object
: (Herb::AST::ERBElseNode) -> void.
-
#visit_erb_end_node(node) ⇒ Object
: (Herb::AST::ERBEndNode) -> void.
-
#visit_erb_ensure_node(node) ⇒ Object
: (Herb::AST::ERBEnsureNode) -> void.
-
#visit_erb_for_node(node) ⇒ Object
: (Herb::AST::ERBForNode) -> void.
-
#visit_erb_if_node(node) ⇒ Object
: (Herb::AST::ERBIfNode) -> void.
-
#visit_erb_in_node(node) ⇒ Object
: (Herb::AST::ERBInNode) -> void.
-
#visit_erb_node(node) ⇒ Object
: (Herb::AST::Node) -> void.
-
#visit_erb_open_tag_node(node) ⇒ Object
: (Herb::AST::ERBOpenTagNode) -> void.
-
#visit_erb_render_node(node) ⇒ Object
: (Herb::AST::ERBRenderNode) -> void.
-
#visit_erb_rescue_node(node) ⇒ Object
: (Herb::AST::ERBRescueNode) -> void.
-
#visit_erb_strict_locals_node(node) ⇒ Object
: (Herb::AST::ERBStrictLocalsNode) -> void.
-
#visit_erb_unless_node(node) ⇒ Object
: (Herb::AST::ERBUnlessNode) -> void.
-
#visit_erb_until_node(node) ⇒ Object
: (Herb::AST::ERBUntilNode) -> void.
-
#visit_erb_when_node(node) ⇒ Object
: (Herb::AST::ERBWhenNode) -> void.
-
#visit_erb_while_node(node) ⇒ Object
: (Herb::AST::ERBWhileNode) -> void.
-
#visit_erb_yield_node(node) ⇒ Object
: (Herb::AST::ERBYieldNode) -> void.
-
#visit_html_attribute_name_node(node) ⇒ Object
: (Herb::AST::HTMLAttributeNameNode) -> void.
-
#visit_html_attribute_node(node) ⇒ Object
: (Herb::AST::HTMLAttributeNode) -> void.
-
#visit_html_attribute_value_node(node) ⇒ Object
: (Herb::AST::HTMLAttributeValueNode) -> void.
-
#visit_html_close_tag_node(node) ⇒ Object
: (Herb::AST::HTMLCloseTagNode) -> void.
-
#visit_html_comment_node(node) ⇒ Object
: (Herb::AST::HTMLCommentNode) -> void.
-
#visit_html_conditional_element_node(node) ⇒ Object
: (Herb::AST::HTMLConditionalElementNode) -> void.
-
#visit_html_conditional_open_tag_node(node) ⇒ Object
: (Herb::AST::HTMLConditionalOpenTagNode) -> void.
-
#visit_html_doctype_node(node) ⇒ Object
: (Herb::AST::HTMLDoctypeNode) -> void.
-
#visit_html_element_node(node) ⇒ Object
: (Herb::AST::HTMLElementNode) -> void.
-
#visit_html_omitted_close_tag_node(node) ⇒ Object
: (Herb::AST::HTMLOmittedCloseTagNode) -> void.
-
#visit_html_open_tag_node(node) ⇒ Object
: (Herb::AST::HTMLOpenTagNode) -> void.
-
#visit_html_text_node(node) ⇒ Object
: (Herb::AST::HTMLTextNode) -> void.
-
#visit_html_virtual_close_tag_node(node) ⇒ Object
: (Herb::AST::HTMLVirtualCloseTagNode) -> void.
-
#visit_literal_node(node) ⇒ Object
: (Herb::AST::LiteralNode) -> void.
-
#visit_node(node) ⇒ Object
: (Herb::AST::Node) -> void.
-
#visit_ruby_html_attributes_splat_node(node) ⇒ Object
: (Herb::AST::RubyHTMLAttributesSplatNode) -> void.
-
#visit_ruby_literal_node(node) ⇒ Object
: (Herb::AST::RubyLiteralNode) -> void.
-
#visit_ruby_parameter_node(node) ⇒ Object
: (Herb::AST::RubyParameterNode) -> void.
-
#visit_ruby_render_keywords_node(node) ⇒ Object
: (Herb::AST::RubyRenderKeywordsNode) -> void.
-
#visit_ruby_render_local_node(node) ⇒ Object
: (Herb::AST::RubyRenderLocalNode) -> void.
-
#visit_whitespace_node(node) ⇒ Object
: (Herb::AST::WhitespaceNode) -> void.
-
#visit_xml_declaration_node(node) ⇒ Object
: (Herb::AST::XMLDeclarationNode) -> void.
Methods included from AST::Helpers
#erb_comment?, #erb_graphql?, #erb_output?, #erb_outputs?, #inline_ruby_comment?
Instance Method Details
#visit(node) ⇒ Object
: (Herb::AST::Node?) -> void
12 13 14 |
# File 'lib/herb/visitor.rb', line 12 def visit(node) node&.accept(self) end |
#visit_all(nodes) ⇒ Object
: (Array) -> void
17 18 19 |
# File 'lib/herb/visitor.rb', line 17 def visit_all(nodes) nodes.each { |node| node&.accept(self) } end |
#visit_cdata_node(node) ⇒ Object
: (Herb::AST::CDATANode) -> void
152 153 154 155 |
# File 'lib/herb/visitor.rb', line 152 def visit_cdata_node(node) visit_node(node) visit_child_nodes(node) end |
#visit_child_nodes(node) ⇒ Object
: (Herb::AST::Node) -> void
22 23 24 |
# File 'lib/herb/visitor.rb', line 22 def visit_child_nodes(node) node.compact_child_nodes.each { |node| node.accept(self) } end |
#visit_document_node(node) ⇒ Object
: (Herb::AST::DocumentNode) -> void
37 38 39 40 |
# File 'lib/herb/visitor.rb', line 37 def visit_document_node(node) visit_node(node) visit_child_nodes(node) end |
#visit_erb_begin_node(node) ⇒ Object
: (Herb::AST::ERBBeginNode) -> void
255 256 257 258 259 |
# File 'lib/herb/visitor.rb', line 255 def visit_erb_begin_node(node) visit_node(node) visit_erb_node(node) visit_child_nodes(node) end |
#visit_erb_block_node(node) ⇒ Object
: (Herb::AST::ERBBlockNode) -> void
192 193 194 195 196 |
# File 'lib/herb/visitor.rb', line 192 def visit_erb_block_node(node) visit_node(node) visit_erb_node(node) visit_child_nodes(node) end |
#visit_erb_case_match_node(node) ⇒ Object
: (Herb::AST::ERBCaseMatchNode) -> void
213 214 215 216 217 |
# File 'lib/herb/visitor.rb', line 213 def visit_erb_case_match_node(node) visit_node(node) visit_erb_node(node) visit_child_nodes(node) end |
#visit_erb_case_node(node) ⇒ Object
: (Herb::AST::ERBCaseNode) -> void
206 207 208 209 210 |
# File 'lib/herb/visitor.rb', line 206 def visit_erb_case_node(node) visit_node(node) visit_erb_node(node) visit_child_nodes(node) end |
#visit_erb_content_node(node) ⇒ Object
: (Herb::AST::ERBContentNode) -> void
164 165 166 167 168 |
# File 'lib/herb/visitor.rb', line 164 def visit_erb_content_node(node) visit_node(node) visit_erb_node(node) visit_child_nodes(node) end |
#visit_erb_else_node(node) ⇒ Object
: (Herb::AST::ERBElseNode) -> void
178 179 180 181 182 |
# File 'lib/herb/visitor.rb', line 178 def visit_erb_else_node(node) visit_node(node) visit_erb_node(node) visit_child_nodes(node) end |
#visit_erb_end_node(node) ⇒ Object
: (Herb::AST::ERBEndNode) -> void
171 172 173 174 175 |
# File 'lib/herb/visitor.rb', line 171 def visit_erb_end_node(node) visit_node(node) visit_erb_node(node) visit_child_nodes(node) end |
#visit_erb_ensure_node(node) ⇒ Object
: (Herb::AST::ERBEnsureNode) -> void
248 249 250 251 252 |
# File 'lib/herb/visitor.rb', line 248 def visit_erb_ensure_node(node) visit_node(node) visit_erb_node(node) visit_child_nodes(node) end |
#visit_erb_for_node(node) ⇒ Object
: (Herb::AST::ERBForNode) -> void
234 235 236 237 238 |
# File 'lib/herb/visitor.rb', line 234 def visit_erb_for_node(node) visit_node(node) visit_erb_node(node) visit_child_nodes(node) end |
#visit_erb_if_node(node) ⇒ Object
: (Herb::AST::ERBIfNode) -> void
185 186 187 188 189 |
# File 'lib/herb/visitor.rb', line 185 def visit_erb_if_node(node) visit_node(node) visit_erb_node(node) visit_child_nodes(node) end |
#visit_erb_in_node(node) ⇒ Object
: (Herb::AST::ERBInNode) -> void
308 309 310 311 312 |
# File 'lib/herb/visitor.rb', line 308 def visit_erb_in_node(node) visit_node(node) visit_erb_node(node) visit_child_nodes(node) end |
#visit_erb_node(node) ⇒ Object
: (Herb::AST::Node) -> void
32 33 34 |
# File 'lib/herb/visitor.rb', line 32 def visit_erb_node(node) # Default implementation does nothing end |
#visit_erb_open_tag_node(node) ⇒ Object
: (Herb::AST::ERBOpenTagNode) -> void
121 122 123 124 125 |
# File 'lib/herb/visitor.rb', line 121 def visit_erb_open_tag_node(node) visit_node(node) visit_erb_node(node) visit_child_nodes(node) end |
#visit_erb_render_node(node) ⇒ Object
: (Herb::AST::ERBRenderNode) -> void
281 282 283 284 285 |
# File 'lib/herb/visitor.rb', line 281 def visit_erb_render_node(node) visit_node(node) visit_erb_node(node) visit_child_nodes(node) end |
#visit_erb_rescue_node(node) ⇒ Object
: (Herb::AST::ERBRescueNode) -> void
241 242 243 244 245 |
# File 'lib/herb/visitor.rb', line 241 def visit_erb_rescue_node(node) visit_node(node) visit_erb_node(node) visit_child_nodes(node) end |
#visit_erb_strict_locals_node(node) ⇒ Object
: (Herb::AST::ERBStrictLocalsNode) -> void
294 295 296 297 298 |
# File 'lib/herb/visitor.rb', line 294 def visit_erb_strict_locals_node(node) visit_node(node) visit_erb_node(node) visit_child_nodes(node) end |
#visit_erb_unless_node(node) ⇒ Object
: (Herb::AST::ERBUnlessNode) -> void
262 263 264 265 266 |
# File 'lib/herb/visitor.rb', line 262 def visit_erb_unless_node(node) visit_node(node) visit_erb_node(node) visit_child_nodes(node) end |
#visit_erb_until_node(node) ⇒ Object
: (Herb::AST::ERBUntilNode) -> void
227 228 229 230 231 |
# File 'lib/herb/visitor.rb', line 227 def visit_erb_until_node(node) visit_node(node) visit_erb_node(node) visit_child_nodes(node) end |
#visit_erb_when_node(node) ⇒ Object
: (Herb::AST::ERBWhenNode) -> void
199 200 201 202 203 |
# File 'lib/herb/visitor.rb', line 199 def visit_erb_when_node(node) visit_node(node) visit_erb_node(node) visit_child_nodes(node) end |
#visit_erb_while_node(node) ⇒ Object
: (Herb::AST::ERBWhileNode) -> void
220 221 222 223 224 |
# File 'lib/herb/visitor.rb', line 220 def visit_erb_while_node(node) visit_node(node) visit_erb_node(node) visit_child_nodes(node) end |
#visit_erb_yield_node(node) ⇒ Object
: (Herb::AST::ERBYieldNode) -> void
301 302 303 304 305 |
# File 'lib/herb/visitor.rb', line 301 def visit_erb_yield_node(node) visit_node(node) visit_erb_node(node) visit_child_nodes(node) end |
#visit_html_attribute_name_node(node) ⇒ Object
: (Herb::AST::HTMLAttributeNameNode) -> void
97 98 99 100 |
# File 'lib/herb/visitor.rb', line 97 def visit_html_attribute_name_node(node) visit_node(node) visit_child_nodes(node) end |
#visit_html_attribute_node(node) ⇒ Object
: (Herb::AST::HTMLAttributeNode) -> void
103 104 105 106 |
# File 'lib/herb/visitor.rb', line 103 def visit_html_attribute_node(node) visit_node(node) visit_child_nodes(node) end |
#visit_html_attribute_value_node(node) ⇒ Object
: (Herb::AST::HTMLAttributeValueNode) -> void
91 92 93 94 |
# File 'lib/herb/visitor.rb', line 91 def visit_html_attribute_value_node(node) visit_node(node) visit_child_nodes(node) end |
#visit_html_close_tag_node(node) ⇒ Object
: (Herb::AST::HTMLCloseTagNode) -> void
61 62 63 64 |
# File 'lib/herb/visitor.rb', line 61 def visit_html_close_tag_node(node) visit_node(node) visit_child_nodes(node) end |
#visit_html_comment_node(node) ⇒ Object
: (Herb::AST::HTMLCommentNode) -> void
134 135 136 137 |
# File 'lib/herb/visitor.rb', line 134 def visit_html_comment_node(node) visit_node(node) visit_child_nodes(node) end |
#visit_html_conditional_element_node(node) ⇒ Object
: (Herb::AST::HTMLConditionalElementNode) -> void
85 86 87 88 |
# File 'lib/herb/visitor.rb', line 85 def visit_html_conditional_element_node(node) visit_node(node) visit_child_nodes(node) end |
#visit_html_conditional_open_tag_node(node) ⇒ Object
: (Herb::AST::HTMLConditionalOpenTagNode) -> void
55 56 57 58 |
# File 'lib/herb/visitor.rb', line 55 def visit_html_conditional_open_tag_node(node) visit_node(node) visit_child_nodes(node) end |
#visit_html_doctype_node(node) ⇒ Object
: (Herb::AST::HTMLDoctypeNode) -> void
140 141 142 143 |
# File 'lib/herb/visitor.rb', line 140 def visit_html_doctype_node(node) visit_node(node) visit_child_nodes(node) end |
#visit_html_element_node(node) ⇒ Object
: (Herb::AST::HTMLElementNode) -> void
79 80 81 82 |
# File 'lib/herb/visitor.rb', line 79 def visit_html_element_node(node) visit_node(node) visit_child_nodes(node) end |
#visit_html_omitted_close_tag_node(node) ⇒ Object
: (Herb::AST::HTMLOmittedCloseTagNode) -> void
67 68 69 70 |
# File 'lib/herb/visitor.rb', line 67 def visit_html_omitted_close_tag_node(node) visit_node(node) visit_child_nodes(node) end |
#visit_html_open_tag_node(node) ⇒ Object
: (Herb::AST::HTMLOpenTagNode) -> void
49 50 51 52 |
# File 'lib/herb/visitor.rb', line 49 def visit_html_open_tag_node(node) visit_node(node) visit_child_nodes(node) end |
#visit_html_text_node(node) ⇒ Object
: (Herb::AST::HTMLTextNode) -> void
128 129 130 131 |
# File 'lib/herb/visitor.rb', line 128 def visit_html_text_node(node) visit_node(node) visit_child_nodes(node) end |
#visit_html_virtual_close_tag_node(node) ⇒ Object
: (Herb::AST::HTMLVirtualCloseTagNode) -> void
73 74 75 76 |
# File 'lib/herb/visitor.rb', line 73 def visit_html_virtual_close_tag_node(node) visit_node(node) visit_child_nodes(node) end |
#visit_literal_node(node) ⇒ Object
: (Herb::AST::LiteralNode) -> void
43 44 45 46 |
# File 'lib/herb/visitor.rb', line 43 def visit_literal_node(node) visit_node(node) visit_child_nodes(node) end |
#visit_node(node) ⇒ Object
: (Herb::AST::Node) -> void
27 28 29 |
# File 'lib/herb/visitor.rb', line 27 def visit_node(node) # Default implementation does nothing end |
#visit_ruby_html_attributes_splat_node(node) ⇒ Object
: (Herb::AST::RubyHTMLAttributesSplatNode) -> void
115 116 117 118 |
# File 'lib/herb/visitor.rb', line 115 def visit_ruby_html_attributes_splat_node(node) visit_node(node) visit_child_nodes(node) end |
#visit_ruby_literal_node(node) ⇒ Object
: (Herb::AST::RubyLiteralNode) -> void
109 110 111 112 |
# File 'lib/herb/visitor.rb', line 109 def visit_ruby_literal_node(node) visit_node(node) visit_child_nodes(node) end |
#visit_ruby_parameter_node(node) ⇒ Object
: (Herb::AST::RubyParameterNode) -> void
288 289 290 291 |
# File 'lib/herb/visitor.rb', line 288 def visit_ruby_parameter_node(node) visit_node(node) visit_child_nodes(node) end |
#visit_ruby_render_keywords_node(node) ⇒ Object
: (Herb::AST::RubyRenderKeywordsNode) -> void
275 276 277 278 |
# File 'lib/herb/visitor.rb', line 275 def visit_ruby_render_keywords_node(node) visit_node(node) visit_child_nodes(node) end |
#visit_ruby_render_local_node(node) ⇒ Object
: (Herb::AST::RubyRenderLocalNode) -> void
269 270 271 272 |
# File 'lib/herb/visitor.rb', line 269 def visit_ruby_render_local_node(node) visit_node(node) visit_child_nodes(node) end |
#visit_whitespace_node(node) ⇒ Object
: (Herb::AST::WhitespaceNode) -> void
158 159 160 161 |
# File 'lib/herb/visitor.rb', line 158 def visit_whitespace_node(node) visit_node(node) visit_child_nodes(node) end |
#visit_xml_declaration_node(node) ⇒ Object
: (Herb::AST::XMLDeclarationNode) -> void
146 147 148 149 |
# File 'lib/herb/visitor.rb', line 146 def visit_xml_declaration_node(node) visit_node(node) visit_child_nodes(node) end |