Skip to content

Commit f1d5822

Browse files
committed
Adds escape_html method to Thor::Util module
1 parent 498a5a9 commit f1d5822

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

lib/thor/shell/html.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,13 @@ class HTML < Basic
5151
def set_color(string, *colors)
5252
if colors.all? { |color| color.is_a?(Symbol) || color.is_a?(String) }
5353
html_colors = colors.map { |color| lookup_color(color) }
54-
"<span style=\"#{html_colors.join('; ')};\">#{CGI.escapeHTML(string)}</span>"
54+
"<span style=\"#{html_colors.join('; ')};\">#{Thor::Util.escape_html(string)}</span>"
5555
else
5656
color, bold = colors
5757
html_color = self.class.const_get(color.to_s.upcase) if color.is_a?(Symbol)
5858
styles = [html_color]
5959
styles << BOLD if bold
60-
"<span style=\"#{styles.join('; ')};\">#{CGI.escapeHTML(string)}</span>"
60+
"<span style=\"#{styles.join('; ')};\">#{Thor::Util.escape_html(string)}</span>"
6161
end
6262
end
6363

lib/thor/util.rb

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,22 @@ def ruby_command
263263
def escape_globs(path)
264264
path.to_s.gsub(/[*?{}\[\]]/, '\\\\\\&')
265265
end
266+
267+
# Returns a string that has had any HTML characters escaped.
268+
#
269+
# ==== Examples
270+
#
271+
# Thor::Util.escape_html('<div>') # => "&lt;div&gt;"
272+
#
273+
# ==== Parameters
274+
# String
275+
#
276+
# ==== Returns
277+
# String
278+
#
279+
def escape_html(string)
280+
CGI.escapeHTML(string)
281+
end
266282
end
267283
end
268284
end

0 commit comments

Comments
 (0)