From c608ebeade50d3e87e750486e4949e8c3bdf1549 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Tue, 21 Jun 2005 07:16:11 +0000 Subject: Added TextHelper#word_wrap(text, line_length = 80) #1449 [tuxie@dekadance.se] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1465 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/CHANGELOG | 2 ++ actionpack/lib/action_view/helpers/text_helper.rb | 5 +++++ actionpack/test/template/text_helper_test.rb | 4 ++++ 3 files changed, 11 insertions(+) diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG index 174cb88d20..c9221c45be 100644 --- a/actionpack/CHANGELOG +++ b/actionpack/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* Added TextHelper#word_wrap(text, line_length = 80) #1449 [tuxie@dekadance.se] + * Added a fall-through action for form_remote_tag that'll be used in case Javascript is unavailable #1459 [Scott Barron]. Example: form_remote_tag :html => { :action => url_for(:controller => "some", :action => "place") } diff --git a/actionpack/lib/action_view/helpers/text_helper.rb b/actionpack/lib/action_view/helpers/text_helper.rb index a65a979343..5e1a2e66ce 100644 --- a/actionpack/lib/action_view/helpers/text_helper.rb +++ b/actionpack/lib/action_view/helpers/text_helper.rb @@ -65,6 +65,11 @@ module ActionView end end + # Word wrap long lines to line_width. + def word_wrap(text, line_width = 80) + text.gsub(/\n/, "\n\n").gsub(/(.{1,#{line_width}})(\s+|$)/, "\\1\n").strip + end + begin require "redcloth" diff --git a/actionpack/test/template/text_helper_test.rb b/actionpack/test/template/text_helper_test.rb index 722f08a7cf..2206ac7d04 100644 --- a/actionpack/test/template/text_helper_test.rb +++ b/actionpack/test/template/text_helper_test.rb @@ -67,6 +67,10 @@ class TextHelperTest < Test::Unit::TestCase assert_equal("...iful morning", excerpt("This is a beautiful morning", "morning", 5)) assert_nil excerpt("This is a beautiful morning", "day") end + + def test_word_wrap + assert_equal("my very very\nvery long\nstring", word_wrap("my very very very long string", 15)) + end def test_pluralization assert_equal("1 count", pluralize(1, "count")) -- cgit v1.2.3