1.15. Zawijanie wierszy tekstu

Problem

Łańcuch zawierający dużą liczbę białych znaków należy sformatować, dzieląc go na wiersze, tak aby możliwe było jego wyświetlenie w oknie lub wysłanie e-mailem.

Rozwiązanie

Najprostszym sposobem wstawienia do łańcucha znaków nowego wiersza jest użycie wyrażenia regularnego podobnego do poniższego:

def wrap(s, width=78) s.gsub(/(.{1,#{width}})(\s+|\Z)/, "\\1\n") end wrap("Ten tekst jest zbyt krótki, by trzeba go było zawijać.") # => "Ten tekst jest zbyt krótki, by trzeba go było zawijać. \n" puts wrap("Ten tekst zostanie zawinięty.", 15) # Ten tekst # zostanie # zawinięty. puts wrap("Ten tekst zostanie zawinięty.", 20) # Ten tekst zostanie # zawinięty. puts wrap("Być albo nie być – oto jest pytanie!",5) ...

Get Ruby. Receptury now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.