From: Ben Thomas Date: 2006-11-16T08:30:05+09:00 Subject: Re: Fully justified/center justified output Juozas Gaigalas wrote: > Philip Hallstrom wrote: >>> Hi, how do I go about fully justifying/center justifying output text >>> in ruby? >>> >>> I'm guessing I have to use sprintf but I can't seem to get it working >>> properly, not sure of the correct "%" characters (don't know the >>> proper name for them). >> >> http://corelib.rubyonrails.org/classes/String.html#M001536 >> >> str.center(integer, padstr) => new_str >> >> If integer is greater than the length of str, returns a new String of >> length integer with str centered and padded with padstr; otherwise, >> returns str. >> >> "hello".center(4) #=> "hello" >> "hello".center(20) #=> " hello " >> "hello".center(20, '123') #=> "1231231hello12312312" >> >> > If you're printing to terminal, you'll need to know the terminal width > before use can use String#center. This is simple in Windows because > cmd.exe terminal is fixed-width. In Linux and OSX this is more > complicated. The easiest way I know is this: > > require "curses" > > width = Curses::cols > "hello".center(width) > > It's not totally clear from your post if this is what you're trying to > do, but if it is I hope this works you. > > Yeah I think that's what I want from what I can see. Can't get it to work for what I want though because the data is in an array. Tried converting it to a string but can't work that out either. Not been doing ruby long as you might have guessed! Thanks, Ben.