diff options
author | José Valim <jose.valim@gmail.com> | 2011-02-10 16:50:35 +0100 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2011-02-10 16:50:35 +0100 |
commit | 89a5f1463d7e9546ed7a0cf482afea99ba2040e7 (patch) | |
tree | 2a8ed779ae295c83dcb886839bf47be0bcdbbee0 /activesupport/lib | |
parent | 98c0c5db50a7679b3d58769ac22cb0a27a62c930 (diff) | |
download | rails-89a5f1463d7e9546ed7a0cf482afea99ba2040e7.tar.gz rails-89a5f1463d7e9546ed7a0cf482afea99ba2040e7.tar.bz2 rails-89a5f1463d7e9546ed7a0cf482afea99ba2040e7.zip |
Revert "Removed Array#safe_join in AS core_ext and moved it to a view helper with the same same."
Applied the wrong version.
This reverts commit 98c0c5db50a7679b3d58769ac22cb0a27a62c930.
Diffstat (limited to 'activesupport/lib')
-rw-r--r-- | activesupport/lib/active_support/core_ext/string/output_safety.rb | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/activesupport/lib/active_support/core_ext/string/output_safety.rb b/activesupport/lib/active_support/core_ext/string/output_safety.rb index c930abc003..0c8fc20ea5 100644 --- a/activesupport/lib/active_support/core_ext/string/output_safety.rb +++ b/activesupport/lib/active_support/core_ext/string/output_safety.rb @@ -122,3 +122,34 @@ class String ActiveSupport::SafeBuffer.new(self) end end + +class Array + # If the separator and all the items in the array are html safe + # then an html safe string is returned using <tt>Array#join</tt>, + # otherwise the result of <tt>Array#join</tt> is returned without + # marking it as html safe. + # + # ["Mr", "Bojangles"].join.html_safe? + # # => false + # + # ["Mr".html_safe, "Bojangles".html_safe].join.html_safe? + # # => true + # + def safe_join(sep=$,) + sep ||= "".html_safe + str = join(sep) + (sep.html_safe? && html_safe?) ? str.html_safe : str + end + + # Returns +true+ if all items in the array are html safe. + # + # [""].html_safe? + # # => false + # + # ["".html_safe].html_safe? + # # => true + # + def html_safe? + detect { |e| !e.html_safe? }.nil? + end +end |