1) I want to auto wrap a text by words so that each line does not exceed 56 characters. Is there a method for doing this, or do I need to roll my own?
@comment_text = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
My view:
<%= @comment_text.cool_string_function( 56 ) %>
would render:
Lorem ipsum dolor sit amet, consectetur adipisicing
elit, sed do eiusmod tempor incididunt ut labore et
dolore magna aliqua.
2) I want to indent the text by 4 spaces so that:
<%= @comment_text.cool_string_function( {:width => 56, :indent => 4} ) %>
w开发者_开发百科ould render:
Lorem ipsum dolor sit amet, consectetur adipisicing
elit, sed do eiusmod tempor incididunt ut labore et
dolore magna aliqua.
I believe the function you are looking for is word_wrap
. Something like this should work:
<%= word_wrap @comment_text, :line_width => 56 %>
You can combine that with gsub
to get the indentation you desire:
<%= word_wrap(@comment_text, :line_width => 52).gsub("\n", "\n ") %>
But you should probably move that into a helper method to keep your view clean.
Perhaps word_wrap helper can help you.
To indent the text you can replace \n
(newline) with newline + 4 spaces.
精彩评论