Note: Testo rimosso dalla rev 5  e Testo aggiunto nella rev6

Il word wrapping consiste nel mandare a capo una parola quando la linea in cui si trova supera una certa lunghezza. Un modo un po’ hackish per farlo:
   def wordwrap(str, lunghezza )
       str.gsub( /\n/, "\n\n" ).gsub( /(.{1,#{lunghezza}})(\s+|$)/, "\\1\n" )
   end
Possiamo migliorarlo un po’, ad esempio facendolo diventare un metodo di String, e mettendo un valore di default (un valore di default e’ sempre utile)
   class String
     def wordwrap( lung=72 )
       gsub( /\n/, "\n\n" ).gsub( /(.{1,#{lun}})(\s+|$)/, "\\1\n" )
     end
   end
Ma questo metodo rimane molto brutto e poco elastico. Fortunatemente ruby possiede un potente modulo, chiamato Text::Format? che permette di effettuare molteplici operazioni sulle stringhe Nel nostro caso si potrebbe fare
   require 'text/format'

   formattatore = Text::Format.new {
     @columns = 72
   }
   formattatore.format( stringa )
Quale logica guida questo sistema? Nulla di speciale. Text::Format.new accetta in input un blocco, e lo esegue al suo interno (tramite il metodo instance_eval(&blocco).) Eseguendolo imposta il valore della variabile @columns a 68. Quando viene chiamato il metodo format(), viene usata questa variabile ( e molte altre, documentate ? insieme al modulo) per formattare la stringa. In effetti se provate questo codice vi troverete una curiosa indentazione all’inizio del testo. Se volete eliminarla vi bastera’ scrivere
   Text::Format.new {
     @columns = 68
     @first_indent = 0
   }
Created on November 25, 2005 13:47 by Ruby Fan (127.0.0.1)