Skip to content

Commit 5b03eb9

Browse files
p8eastspire
andauthored
[ruby] Use ERB::Escape for html escaping (#10176)
It should be slight faster as it doesn't allocate a new string when nothing needs to be escaped. https://github.com/ruby/erb/blob/6a5729b7e291e30432f3955e443cc3e6c9215b60/ext/erb/escape/escape.c Also Rack::Utils delegates to ERB if it's present. Co-authored-by: 尤雨东 <[email protected]>
1 parent 0063bb0 commit 5b03eb9

File tree

5 files changed

+5
-5
lines changed

5 files changed

+5
-5
lines changed

frameworks/Ruby/agoo/app.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ def self.call(_req)
127127
f_2 = f_1.map(&:to_h).
128128
append({ 'id' => '0', 'message' => 'Additional fortune added at request time.' }).
129129
sort_by { |item| item['message'] }.
130-
map { |f| "<tr><td>#{ f['id'] }</td><td>#{ CGI.escape_html(f['message']) }</td></tr>" }.
130+
map { |f| "<tr><td>#{ f['id'] }</td><td>#{ ERB::Escape.html_escape(f['message']) }</td></tr>" }.
131131
join
132132

133133
html_response(<<-HTML)

frameworks/Ruby/rack-sequel/hello_world.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ def fortunes
7070
html << <<~"HTML"
7171
<tr>
7272
<td>#{fortune.id}</td>
73-
<td>#{CGI.escape_html(fortune.message)}</td>
73+
<td>#{ERB::Escape.html_escape(fortune.message)}</td>
7474
</tr>
7575
HTML
7676
end

frameworks/Ruby/rack/hello_world.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ def fortunes
5858
buffer << TEMPLATE_PREFIX
5959

6060
fortunes.each do |item|
61-
buffer << "<tr><td>#{item[:id]}</td><td>#{Rack::Utils.escape_html(item[:message])}</td></tr>"
61+
buffer << "<tr><td>#{item[:id]}</td><td>#{ERB::Escape.html_escape(item[:message])}</td></tr>"
6262
end
6363
buffer << TEMPLATE_POSTFIX
6464
end

frameworks/Ruby/sinatra-sequel/views/fortunes.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<% @fortunes.each do |fortune| %>
77
<tr>
88
<td><%= fortune.id %></td>
9-
<td><%= CGI.escape_html(fortune.message) %></td>
9+
<td><%= ERB::Escape.html_escape(fortune.message) %></td>
1010
</tr>
1111
<% end %>
1212
</table>

frameworks/Ruby/sinatra/views/fortunes.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<% @fortunes.each do |fortune| %>
77
<tr>
88
<td><%= fortune.id %></td>
9-
<td><%= CGI.escape_html(fortune.message) %></td>
9+
<td><%= ERB::Escape.html_escape(fortune.message) %></td>
1010
</tr>
1111
<% end %>
1212
</table>

0 commit comments

Comments
 (0)