From: Rob Biedenharn Date: 2007-08-22T20:50:14+09:00 Subject: Re: tail, start reading at EOF On Aug 22, 2007, at 6:27 AM, Rebhan, Gilbert wrote: > -----Original Message----- > From: Bertram Scharpf [mailto:lists@bertram-scharpf.de] > Sent: Wednesday, August 22, 2007 12:14 PM > To: ruby-talk ML > Subject: Re: tail, start reading at EOF > > /* > Hi, > > Am Mittwoch, 22. Aug 2007, 18:20:12 +0900 schrieb Rebhan, Gilbert: >> how to alter tail function to start at the end >> of the file, not reading the lines already existing in file ? = > > file.seek 0, IO::SEEK_END > */ > > thanks, with your pointer and an older post by Robert Klemme > i have a working solution now = > > def tail(file, interval=1) > raise "Illegal interval #{interval}" if interval < 0 > > File.open(file) do |io| > io.seek 0, IO::SEEK_END > loop do > while ( line = io.gets ) > puts line > end > # uncomment next to watch what is happening > puts "-" > sleep interval > end > end > end > > Anything to improve ? > > Regards, Gilbert gem install file-tail Then look at the rdoc for it. There's an example that does an implementation of the Unix tail command. It's a lot more capable that what you have here, but if you wanted to start some number of lines before the EOF, the file-tail gem is really what you want. -Rob Rob Biedenharn http://agileconsultingllc.com Rob@AgileConsultingLLC.com