Подтвердить что ты не робот

Обтекание текста строками на границах слов

1) Я хочу автоматически обернуть текст словами, чтобы каждая строка не превышала 56 символов. Есть ли способ сделать это, или мне нужно катить свое?

@comment_text = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."

Мой взгляд:

<%= @comment_text.cool_string_function( 56 ) %>

будет отображать:

Lorem ipsum dolor sit amet, consectetur adipisicing
elit, sed do eiusmod tempor incididunt ut labore et 
dolore magna aliqua.

2) Я хочу отложить текст на 4 пробела, чтобы:

<%= @comment_text.cool_string_function( {:width => 56, :indent => 4} ) %>

будет отображать:

    Lorem ipsum dolor sit amet, consectetur adipisicing
    elit, sed do eiusmod tempor incididunt ut labore et 
    dolore magna aliqua.
4b9b3361

Ответ 1

Я считаю, что функция, которую вы ищете, word_wrap. Что-то вроде этого должно работать:

<%= word_wrap @comment_text, :line_width => 56 %>

Вы можете комбинировать это с gsub, чтобы получить желаемый отступ:

<%= word_wrap(@comment_text, :line_width => 52).gsub("\n", "\n    ") %>

Но вы должны перенести это в вспомогательный метод, чтобы ваш взгляд был чистым.

Ответ 2

Возможно, word_wrap помощник может помочь вам.

Чтобы отпечатать текст, вы можете заменить \n (newline) на новую строку + 4 пробела.