Перенос текста в строки на границах слов - PullRequest
12 голосов
/ 22 февраля 2010

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.

Ответы [ 2 ]

19 голосов
/ 22 февраля 2010

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

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

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

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

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

9 голосов
/ 22 февраля 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...