Paul Brannan
4/27/2007 12:59:00 PM
On Fri, Apr 27, 2007 at 06:25:24PM +0900, Chad Perrin wrote:
> I don't necessarily need code examples -- but if anyone has ideas for a
> best approach to specifying a line wrap width (breaking between words
> for lines no longer than a specific column width) for output from a Ruby
> script, I'd love to hear about it.
You can use prettyprint:
irb(main):001:0> require 'prettyprint'
=> false
irb(main):003:0> s = "The quick brown fox jumped over the lazy dog. Now is the time for all good men to come to the aid of their country. You have been warned."
irb(main):015:0> puts PrettyPrint.format('', 80) { |q|
irb(main):016:1* s.scan(/\S+/) { |t|
irb(main):017:2* q.group { q.text t; q.breakable }
irb(main):018:2> }
irb(main):019:1> }
The quick brown fox jumped over the lazy dog. Now is the time for all good men
to come to the aid of their country. You have been warned.
=> nil
I get the feeling I'm not doing this quite right, since this strips out
newlines and doesn't retain multiple spaces from the original string.
Perhaps there's a prettyprint expert out there who knows how to do this
better.
Paul