Each roll-over in File?

fellow, Rubyists:

I have the following code in a PDF writer using Prawn on Ruby 1.8.7 p249
(Default on Ubuntu 10.04). My problem is that the

     @src_file.each do | line |
        ...
     end

... block appears to be rolling over and repeating lines from the beginning
of the file. I tried to use p330 but due to Debian's known ...
eccentricities... it won't load my ruby gems.

                    @src_file = File.open @src_fn
                    Prawn::Document.generate( @out_fn ) do | pdf |
                        @next = true
                        @src_file.each do | line |
                            while @lines_to_do < 1 do
                                update_state_n_format( pdf )
                                @next = true if @lines_to_do <= 0
                            end
                            process_line( line, pdf )
                            @lines_to_do -= 1
                        end
                        @src_file.close
                    end

Is this a known issue? Or already fixed?

···

--
-- Don Wilde
ph: 512-394-8896 skype: donwilde1
e: dwilde1@gmail.com
"If you are creative and add value to the world, sleep well. You've earned
it."

...

... block appears to be rolling over and repeating lines from the beginning
of the file.

...

                   @src\_file\.each do | line |
                       while @lines\_to\_do &lt; 1 do
                           update\_state\_n\_format\( pdf \)
                           @next = true if @lines\_to\_do &lt;= 0
                       end
                       process\_line\( line, pdf \)
                       @lines\_to\_do \-= 1
                   end

...

Are you positive that nothing in update_state_n_format() or
process_line() is touching @src_file and perhaps rewinding the file's
read position?

Wondering,
Aaron out.

···

On Wed, Jan 19, 2011 at 5:56 PM, Don Wilde <dwilde1@gmail.com> wrote:

...

[snip]

Are you positive that nothing in update_state_n_format() or
process_line() is touching @src_file and perhaps rewinding the file's
read position?

I did figure it out. Above this code is a line that says

   close if @done == true

... the close being a wxRuby close(), and it was actually coming back from
the close() and re-opening the file and crashing before the close()
completed all its operations at the Wx level.

Changing it to

   if @done == true then
      close
   else
      # parse the file
   end

...worked.

In other words, close() != die() :smiley:

···

On Wed, Jan 19, 2011 at 6:34 PM, Aaron D. Gifford <astounding@gmail.com>wrote:

On Wed, Jan 19, 2011 at 5:56 PM, Don Wilde <dwilde1@gmail.com> wrote:

--
-- Don Wilde
ph: 512-394-8896 skype: donwilde1
e: dwilde1@gmail.com
"If you are creative and add value to the world, sleep well. You've earned
it."