blob: 39f3f38e33704c719f5f339ea42dd6f6cc992cac (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
require 'active_support/core_ext/string/output_safety'
module ActionView #:nodoc:
# = Action View Raw Output Helper
module Helpers #:nodoc:
module OutputSafetyHelper
# This method outputs without escaping a string. Since escaping tags is
# now default, this can be used when you don't want Rails to automatically
# escape tags. This is not recommended if the data is coming from the user's
# input.
#
# For example:
#
# <%=raw @user.name %>
def raw(stringish)
stringish.to_s.html_safe
end
# This method returns a html safe string using <tt>Array#join</tt> if all
# the items in the array, including the supplied separator, are html safe.
# Otherwise the result of <tt>Array#join</tt> is returned without marking
# it as html safe.
#
# safe_join(["Mr", "Bojangles"]).html_safe?
# # => false
#
# safe_join(["Mr".html_safe, "Bojangles".html_safe]).html_safe?
# # => true
#
def safe_join(array, sep=$,)
sep ||= "".html_safe
str = array.join(sep)
is_html_safe = array.all? { |item| item.html_safe? }
(sep.html_safe? && is_html_safe) ? str.html_safe : str
end
end
end
end
|