From 5bf4cbbdb74dfaaac258dc93e54dcae8295211e9 Mon Sep 17 00:00:00 2001 From: Rick Olson Date: Mon, 24 Mar 2008 02:29:30 +0000 Subject: Allow the #simple_format text_helper to take an html_options hash for each paragraph. Closes #2448 [Francois Beausoleil, thechrisoshow] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@9083 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/lib/action_view/helpers/text_helper.rb | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'actionpack/lib') diff --git a/actionpack/lib/action_view/helpers/text_helper.rb b/actionpack/lib/action_view/helpers/text_helper.rb index 3d479608f3..f8c3b67474 100644 --- a/actionpack/lib/action_view/helpers/text_helper.rb +++ b/actionpack/lib/action_view/helpers/text_helper.rb @@ -291,6 +291,8 @@ module ActionView # considered as a linebreak and a
tag is appended. This # method does not remove the newlines from the +text+. # + # You can pass any HTML attributes into html_options. These + # will be added to all created paragraphs. # ==== Examples # my_text = "Here is some basic text...\n...with a line break." # @@ -301,11 +303,17 @@ module ActionView # # simple_format(more_text) # # => "

We want to put a paragraph...

\n\n

...right there.

" - def simple_format(text) - content_tag 'p', text.to_s. - gsub(/\r\n?/, "\n"). # \r\n and \r -> \n - gsub(/\n\n+/, "

\n\n

"). # 2+ newline -> paragraph - gsub(/([^\n]\n)(?=[^\n])/, '\1
') # 1 newline -> br + # + # simple_format("Look ma! A class!", :class => 'description') + # # => "

Look ma! A class!

" + def simple_format(text, html_options={}) + start_tag = tag('p', html_options, true) + text = text.to_s.dup + text.gsub!(/\r\n?/, "\n") # \r\n and \r -> \n + text.gsub!(/\n\n+/, "

\n\n#{start_tag}") # 2+ newline -> paragraph + text.gsub!(/([^\n]\n)(?=[^\n])/, '\1
') # 1 newline -> br + text.insert 0, start_tag + text << "

" end # Turns all URLs and e-mail addresses into clickable links. The +link+ parameter -- cgit v1.2.3