Skip to content

Commit f067cee

Browse files
authored
wrap outputs in template calls (#16)
1 parent 75f1bb1 commit f067cee

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

lib/ruby_ast_gen/erb_to_ruby_transformer.rb

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ def transform(input)
2727
private
2828
def visit(node)
2929
return "" unless node.is_a?(Array)
30-
3130
case node.first
3231
when :multi
3332
# Usually the start of an ERB program
@@ -55,17 +54,18 @@ def visit(node)
5554
end
5655
when :dynamic
5756
# Handles <%= %> tags
58-
code = node[1].to_s.strip
57+
node[1].to_s.strip
58+
when :escape
59+
escape_enabled = node[1]
60+
inner_node = node[2]
61+
code = inner_node[1].to_s.strip
62+
template_call = if escape_enabled then "joern__template_out_raw" else "joern__template_out_escape" end
5963
if @in_control_block
60-
@control_block_content << "\#{#{code}}"
64+
@control_block_content << "\#{#{template_call}(#{code})}"
6165
""
6266
else
63-
"\#{#{code}}"
67+
"\#{#{template_call}(#{code})}"
6468
end
65-
when :escape
66-
escape_enabled = node[1]
67-
inner_node = node[2]
68-
visit(inner_node)
6969
when :code
7070
# Handles <% %> tags
7171
code = node[1].to_s.strip

0 commit comments

Comments
 (0)