Class: SyntaxTree::ERB::PrettyPrint
- Defined in:
- lib/syntax_tree/erb/pretty_print.rb
Instance Attribute Summary collapse
-
#q ⇒ Object
readonly
Returns the value of attribute q.
Instance Method Summary collapse
-
#initialize(q) ⇒ PrettyPrint
constructor
A new instance of PrettyPrint.
-
#visit_attribute(node) ⇒ Object
Visit an Attribute node.
- #visit_block(node) ⇒ Object
-
#visit_char_data(node) ⇒ Object
Visit a CharData node.
-
#visit_closing_tag(node) ⇒ Object
Visit an HtmlNode::ClosingTag node.
-
#visit_doctype(node) ⇒ Object
Visit a Doctype node.
-
#visit_document(node) ⇒ Object
Visit a Document node.
-
#visit_erb(node) ⇒ Object
Visit an ErbNode node.
- #visit_erb_block(node) ⇒ Object
- #visit_erb_case(node) ⇒ Object
- #visit_erb_case_when(node) ⇒ Object
- #visit_erb_close(node) ⇒ Object
- #visit_erb_comment(node) ⇒ Object
-
#visit_erb_content(node) ⇒ Object
Visit an ErbContent node.
- #visit_erb_do_close(node) ⇒ Object
- #visit_erb_else(node) ⇒ Object
- #visit_erb_elsif(node) ⇒ Object
- #visit_erb_end(node) ⇒ Object
- #visit_erb_if(node, key = "erb_if") ⇒ Object
-
#visit_html(node) ⇒ Object
Visit an HtmlNode.
- #visit_html_comment(node) ⇒ Object
-
#visit_html_string(node) ⇒ Object
Visit a HtmlString node.
- #visit_new_line(node) ⇒ Object
-
#visit_opening_tag(node) ⇒ Object
Visit an HtmlNode::OpeningTag node.
-
#visit_token(node) ⇒ Object
Visit a Token node.
Methods inherited from Visitor
Constructor Details
#initialize(q) ⇒ PrettyPrint
Returns a new instance of PrettyPrint.
8 9 10 |
# File 'lib/syntax_tree/erb/pretty_print.rb', line 8 def initialize(q) @q = q end |
Instance Attribute Details
#q ⇒ Object (readonly)
Returns the value of attribute q.
6 7 8 |
# File 'lib/syntax_tree/erb/pretty_print.rb', line 6 def q @q end |
Instance Method Details
#visit_attribute(node) ⇒ Object
Visit an Attribute node.
120 121 122 |
# File 'lib/syntax_tree/erb/pretty_print.rb', line 120 def visit_attribute(node) visit_node("attribute", node) end |
#visit_block(node) ⇒ Object
22 23 24 |
# File 'lib/syntax_tree/erb/pretty_print.rb', line 22 def visit_block(node) visit_node(node.class.to_s, node) end |
#visit_char_data(node) ⇒ Object
Visit a CharData node.
130 131 132 |
# File 'lib/syntax_tree/erb/pretty_print.rb', line 130 def visit_char_data(node) visit_node("char_data", node) end |
#visit_closing_tag(node) ⇒ Object
Visit an HtmlNode::ClosingTag node.
37 38 39 |
# File 'lib/syntax_tree/erb/pretty_print.rb', line 37 def visit_closing_tag(node) visit_node("closing_tag", node) end |
#visit_doctype(node) ⇒ Object
Visit a Doctype node.
147 148 149 |
# File 'lib/syntax_tree/erb/pretty_print.rb', line 147 def visit_doctype(node) visit_node("doctype", node) end |
#visit_document(node) ⇒ Object
Visit a Document node.
18 19 20 |
# File 'lib/syntax_tree/erb/pretty_print.rb', line 18 def visit_document(node) visit_node("document", node) end |
#visit_erb(node) ⇒ Object
Visit an ErbNode node.
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/syntax_tree/erb/pretty_print.rb', line 42 def visit_erb(node) q.group do q.text("(erb") q.nest(2) do q.breakable visit(node.opening_tag) if node.keyword q.breakable visit(node.keyword) end if node.content q.breakable q.text("content") end q.breakable visit(node.closing_tag) end q.breakable("") q.text(")") end end |
#visit_erb_block(node) ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/syntax_tree/erb/pretty_print.rb', line 65 def visit_erb_block(node) q.group do q.text("(erb_block") q.nest(2) do q.breakable q.seplist(node.elements) { |child_node| visit(child_node) } end q.breakable visit(node.closing) q.breakable("") q.text(")") end end |
#visit_erb_case(node) ⇒ Object
102 103 104 |
# File 'lib/syntax_tree/erb/pretty_print.rb', line 102 def visit_erb_case(node) visit_erb_if(node, "erb_case") end |
#visit_erb_case_when(node) ⇒ Object
106 107 108 |
# File 'lib/syntax_tree/erb/pretty_print.rb', line 106 def visit_erb_case_when(node) visit_erb_if(node, "erb_when") end |
#visit_erb_close(node) ⇒ Object
138 139 140 |
# File 'lib/syntax_tree/erb/pretty_print.rb', line 138 def visit_erb_close(node) visit(node.closing) end |
#visit_erb_comment(node) ⇒ Object
155 156 157 |
# File 'lib/syntax_tree/erb/pretty_print.rb', line 155 def visit_erb_comment(node) visit_node("erb_comment", node) end |
#visit_erb_content(node) ⇒ Object
Visit an ErbContent node.
115 116 117 |
# File 'lib/syntax_tree/erb/pretty_print.rb', line 115 def visit_erb_content(node) q.pp(node.value) end |
#visit_erb_do_close(node) ⇒ Object
142 143 144 |
# File 'lib/syntax_tree/erb/pretty_print.rb', line 142 def visit_erb_do_close(node) visit_node("erb_do_close", node) end |
#visit_erb_else(node) ⇒ Object
98 99 100 |
# File 'lib/syntax_tree/erb/pretty_print.rb', line 98 def visit_erb_else(node) visit_erb_if(node, "erb_else") end |
#visit_erb_elsif(node) ⇒ Object
94 95 96 |
# File 'lib/syntax_tree/erb/pretty_print.rb', line 94 def visit_erb_elsif(node) visit_erb_if(node, "erb_elsif") end |
#visit_erb_end(node) ⇒ Object
110 111 112 |
# File 'lib/syntax_tree/erb/pretty_print.rb', line 110 def visit_erb_end(node) q.pp("(erb_end)") end |
#visit_erb_if(node, key = "erb_if") ⇒ Object
79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/syntax_tree/erb/pretty_print.rb', line 79 def visit_erb_if(node, key = "erb_if") q.group do q.text("(") visit(node.opening) q.nest(2) do q.breakable() q.seplist(node.child_nodes) { |child_node| visit(child_node) } end q.breakable visit(node.closing) q.breakable("") q.text(")") end end |
#visit_html(node) ⇒ Object
Visit an HtmlNode.
27 28 29 |
# File 'lib/syntax_tree/erb/pretty_print.rb', line 27 def visit_html(node) visit_node("html", node) end |
#visit_html_comment(node) ⇒ Object
151 152 153 |
# File 'lib/syntax_tree/erb/pretty_print.rb', line 151 def visit_html_comment(node) visit_node("html_comment", node) end |
#visit_html_string(node) ⇒ Object
Visit a HtmlString node.
125 126 127 |
# File 'lib/syntax_tree/erb/pretty_print.rb', line 125 def visit_html_string(node) visit_node("html_string", node) end |
#visit_new_line(node) ⇒ Object
134 135 136 |
# File 'lib/syntax_tree/erb/pretty_print.rb', line 134 def visit_new_line(node) node.count > 1 ? q.text("(new_line blank)") : q.text("(new_line)") end |
#visit_opening_tag(node) ⇒ Object
Visit an HtmlNode::OpeningTag node.
32 33 34 |
# File 'lib/syntax_tree/erb/pretty_print.rb', line 32 def visit_opening_tag(node) visit_node("opening_tag", node) end |
#visit_token(node) ⇒ Object
Visit a Token node.
13 14 15 |
# File 'lib/syntax_tree/erb/pretty_print.rb', line 13 def visit_token(node) q.pp(node.value) end |