From: John Joyce Date: 2007-03-09T20:14:29+09:00 Subject: Re: rjust alignment Maybe you're looking at the numbers wrong. You could roll your own pretty easily. Some pseudo code: TotalWidth = x TotalWidthForLine = TotalWidth - ( ChapterTitleWidth + PageNumberWidth ) On Mar 9, 2007, at 2:45 PM, Ross wrote: > I think I'm going crazy. I tried to write a fairly simple program to > test ljust, center and rjust. But I cannot make the page numbers > of my > table of contents line up. I tried to account for the string > length of > the chapter and topics; I've tried a lot of things and I just > cannot get > the page numbers to line up. If anyone knows how to do it please > let me > know. I don't think I'll be able to go to bed without figuring it > out. > Here is my latest code and output: > > ////////// code ////////////// > > class TableOfContents > attr_accessor :chapters, :topics, :pages > end > > toc = TableOfContents.new > toc.chapters = ["Chapter 1", "Chapter 2", "Chapter 3"] > toc.topics = ["Numbers", "Letters", "Variables"] > toc.pages = ["Page 1", "Page 57", "Page 117"] > > lineWidth = 20 > 3.times do |x| > offset = toc.chapters[x] + ": " + toc.topics[x] > offset = 40 - offset.length > puts toc.chapters[x] + ": " + toc.topics[x] + > toc.pages[x].rjust(lineWidth + offset + (10 - toc.pages[x].length)) > end > > //////////// output ///////////////// > > Chapter 1: Numbers Page 1 > Chapter 2: Letters Page 57 > Chapter 3: Variables Page 117 > > !! Using this line rather than the above line 14 gives this > > new line 14: > > puts toc.chapters[x] + ": " + toc.topics[x] + > toc.pages[x].rjust(lineWidth) > > new output: > > Chapter 1: Numbers Page 1 > Chapter 2: Letters Page 57 > Chapter 3: Variables Page 117 > > Thanks > > -- > Posted via http://www.ruby-forum.com/. >