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 the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.