aboutsummaryrefslogtreecommitdiffstats
path: root/actionview/lib/action_view/helpers/text_helper.rb
diff options
context:
space:
mode:
Diffstat (limited to 'actionview/lib/action_view/helpers/text_helper.rb')
-rw-r--r--actionview/lib/action_view/helpers/text_helper.rb10
1 files changed, 6 insertions, 4 deletions
diff --git a/actionview/lib/action_view/helpers/text_helper.rb b/actionview/lib/action_view/helpers/text_helper.rb
index 2109b2724c..e860577d6f 100644
--- a/actionview/lib/action_view/helpers/text_helper.rb
+++ b/actionview/lib/action_view/helpers/text_helper.rb
@@ -123,7 +123,9 @@ module ActionView
text
else
highlighter = options.fetch(:highlighter, '<mark>\1</mark>')
- match = Array(phrases).map { |p| Regexp.escape(p) }.join('|')
+ match = Array(phrases).map do |p|
+ Regexp === p ? p.to_s : Regexp.escape(p)
+ end.join('|')
text.gsub(/(#{match})(?![^<]*?>)/i, highlighter)
end.html_safe
end
@@ -156,11 +158,11 @@ module ActionView
return unless text && phrase
separator = options.fetch(:separator, nil) || ""
- if Regexp === phrase
+ case phrase
+ when Regexp
regex = phrase
else
- phrase = Regexp.escape(phrase)
- regex = /#{phrase}/i
+ regex = /#{Regexp.escape(phrase)}/i
end
return unless matches = text.match(regex)