aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2007-09-22 18:21:54 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2007-09-22 18:21:54 +0000
commit9686dcdb5b0cefe2ab80ac457917025848afb9b3 (patch)
tree84df465aa201d46605dfee61e69f03cfc1a670cd /actionpack
parent286bd9b9f064fbfb67a9518f8b5216d03c496312 (diff)
downloadrails-9686dcdb5b0cefe2ab80ac457917025848afb9b3.tar.gz
rails-9686dcdb5b0cefe2ab80ac457917025848afb9b3.tar.bz2
rails-9686dcdb5b0cefe2ab80ac457917025848afb9b3.zip
Fixed TextHelper#word_wrap for multiline strings with extra carrier returns (closes #8663) [seth]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7562 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/CHANGELOG2
-rw-r--r--actionpack/lib/action_view/helpers/text_helper.rb4
-rw-r--r--actionpack/test/template/text_helper_test.rb4
3 files changed, 9 insertions, 1 deletions
diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG
index 2a81480e2a..0835258d5e 100644
--- a/actionpack/CHANGELOG
+++ b/actionpack/CHANGELOG
@@ -1,5 +1,7 @@
*SVN*
+* Fixed TextHelper#word_wrap for multiline strings with extra carrier returns #8663 [seth]
+
* Fixed that setting the :host option in url_for would automatically turn off :only_path (since :host would otherwise not be shown) #9586 [Bounga]
* Added FormHelper#label #8641 [jcoglan]
diff --git a/actionpack/lib/action_view/helpers/text_helper.rb b/actionpack/lib/action_view/helpers/text_helper.rb
index e07c8c5ef3..e7a6303154 100644
--- a/actionpack/lib/action_view/helpers/text_helper.rb
+++ b/actionpack/lib/action_view/helpers/text_helper.rb
@@ -161,7 +161,9 @@ module ActionView
# word_wrap('Once upon a time', 1)
# # => Once\nupon\na\ntime
def word_wrap(text, line_width = 80)
- text.gsub(/\n/, "\n\n").gsub(/(.{1,#{line_width}})(\s+|$)/, "\\1\n").strip
+ text.split("\n").collect do |line|
+ line.length > line_width ? line.gsub(/(.{1,#{line_width}})(\s+|$)/, "\\1\n").strip : line
+ end * "\n"
end
begin
diff --git a/actionpack/test/template/text_helper_test.rb b/actionpack/test/template/text_helper_test.rb
index 1e80d030ec..822b88adee 100644
--- a/actionpack/test/template/text_helper_test.rb
+++ b/actionpack/test/template/text_helper_test.rb
@@ -120,6 +120,10 @@ class TextHelperTest < Test::Unit::TestCase
assert_equal("my very very\nvery long\nstring", word_wrap("my very very very long string", 15))
end
+ def test_word_wrap_with_extra_newlines
+ assert_equal("my very very\nvery long\nstring\n\nwith another\nline", word_wrap("my very very very long string\n\nwith another line", 15))
+ end
+
def test_pluralization
assert_equal("1 count", pluralize(1, "count"))
assert_equal("2 counts", pluralize(2, "count"))