Skip to content

Commit fb4e8cd

Browse files
Always insert newline before closing parenthesis in expressions
Simplify the heredoc fix by unconditionally adding a newline before the closing parenthesis instead of checking for heredoc patterns. This is safe because Ruby ignores trailing newlines in expressions. Update compiled snapshots to reflect the new output format. Co-authored-by: Amp <amp@ampcode.com> Amp-Thread-ID: https://ampcode.com/threads/T-019c7333-8beb-715a-9183-8434cd5fb15a
1 parent 6aba510 commit fb4e8cd

9 files changed

+23
-13
lines changed

lib/reactionview/template/handlers/herb/herb.rb

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,7 @@ def add_rails_expression(indicator, code, wrap_parentheses:)
6666
end
6767

6868
if wrap_parentheses
69-
@src << "(" << code
70-
@src << "\n" if code.match?(/<<[~-]?\s*['"`]?\w/)
71-
@src << ")"
69+
@src << "(" << code << "\n)"
7270
else
7371
@src << " " << code
7472
end
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1-
@output_buffer.safe_append='<h1>Hello '.freeze; @output_buffer.append=(@name); @output_buffer.safe_append='</h1>'.freeze;
1+
@output_buffer.safe_append='<h1>Hello '.freeze; @output_buffer.append=(@name
2+
); @output_buffer.safe_append='</h1>'.freeze;
23
@output_buffer
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
1-
@output_buffer.append=(@html); @output_buffer.append=(raw @safe_html);
1+
@output_buffer.append=(@html
2+
); @output_buffer.append=(raw @safe_html
3+
);
24
@output_buffer
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
@output_buffer.safe_append='<div>
2-
'.freeze; @output_buffer.append=(@content); @output_buffer.safe_append='
2+
'.freeze; @output_buffer.append=(@content
3+
); @output_buffer.safe_append='
34
</div>'.freeze;
45
@output_buffer
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
1-
@output_buffer.safe_append='<h1>Hello '.freeze; @output_buffer.append=(@name); @output_buffer.safe_append='!</h1><p>'.freeze; @output_buffer.append=(@message); @output_buffer.safe_append='</p>'.freeze;
1+
@output_buffer.safe_append='<h1>Hello '.freeze; @output_buffer.append=(@name
2+
); @output_buffer.safe_append='!</h1><p>'.freeze; @output_buffer.append=(@message
3+
); @output_buffer.safe_append='</p>'.freeze;
24
@output_buffer
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1-
@output_buffer.safe_append='<div>'.freeze; @output_buffer.append=(@unsafe_content); @output_buffer.safe_append='</div>'.freeze;
1+
@output_buffer.safe_append='<div>'.freeze; @output_buffer.append=(@unsafe_content
2+
); @output_buffer.safe_append='</div>'.freeze;
23
@output_buffer
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1-
@output_buffer.append=(content_tag :div, "Hello", class: "greeting");
1+
@output_buffer.append=(content_tag :div, "Hello", class: "greeting"
2+
);
23
@output_buffer

test/snapshots/herb/template_handler_test/test_0010_user_card_with_conditional_and_link_to_compiled_351531c91827e79a1a9ab2f324c18ce9.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
@output_buffer.safe_append='<div class="user-card">
2-
<h2>'.freeze; @output_buffer.append=(@user[:name]); @output_buffer.safe_append='</h2>
2+
<h2>'.freeze; @output_buffer.append=(@user[:name]
3+
); @output_buffer.safe_append='</h2>
34
'.freeze; if @user[:verified]
45
@output_buffer.safe_append=' <span class="badge">Verified</span>
56
'.freeze; end

test/snapshots/herb/template_handler_test/test_0011_complex_layout_with_helpers_compiled_3a9949064612857244b6b8987a2b6dc3.txt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
@output_buffer.safe_append='<div class="container py-8">
2-
<h1 class="title">'.freeze; @output_buffer.append=(title "Events by Country"); @output_buffer.safe_append='</h1>
2+
<h1 class="title">'.freeze; @output_buffer.append=(title "Events by Country"
3+
); @output_buffer.safe_append='</h1>
34

4-
'.freeze; @output_buffer.append=(ui_button "View all cities", url: cities_path, kind: :secondary); @output_buffer.safe_append='
5+
'.freeze; @output_buffer.append=(ui_button "View all cities", url: cities_path, kind: :secondary
6+
); @output_buffer.safe_append='
57

68
'.freeze; if @show_countries
79
@output_buffer.safe_append=' <h2>Countries</h2>
810
'.freeze; @output_buffer.append= link_to country_path("switzerland"), id: "country-ch", class: "event-item" do; @output_buffer.safe_append='
911
<span class="event-name">🇨🇭 Switzerland</span>
10-
'.freeze; @output_buffer.append=(ui_badge(5, kind: :secondary, class: "event-count")); @output_buffer.safe_append='
12+
'.freeze; @output_buffer.append=(ui_badge(5, kind: :secondary, class: "event-count")
13+
); @output_buffer.safe_append='
1114
'.freeze; end
1215
end
1316
@output_buffer.safe_append='</div>

0 commit comments

Comments
 (0)