Ruby
Pull request Compare This branch is 10 commits ahead, 31 commits behind flori:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
examples
lib
tests
.gitignore
.travis.yml
CHANGES
COPYING
Gemfile
README.rdoc
Rakefile

README.rdoc

IO::Tail for Ruby

Description

This is a small ruby library that allows it to “tail” various IOs in Ruby, including following a file, that still is growing like the unix command 'tail -f' can.

Download

The latest version of IO::Tail (io-tail) can be found at

github.com/octplane/ruby-io-tail

Online Documentation should be located at

rubydoc.info/github/octplane/ruby-io-tail/

Installation

To install io-tail via its gem type:

# gem install io-tail

To install from the source repository, just type into the command line as root:

# rake install

Usage

File::Tail is a module in the File class. A lightweight class interface for logfiles can be seen under File::Tail::Logfile.

Direct extension of File objects with File::Tail works like that:

File.open(filename) do |log|
  log.extend(File::Tail)
  log.interval = 10
  log.backward(10)
  log.tail { |line| puts line }
end

It's also possible to mix File::Tail in your own File classes (see also File::Tail::Logfile):

class MyFile < File
  include File::Tail
end
log = MyFile.new("myfile")
log.interval = 10
log.backward(10)
log.tail { |line| print line }

The forward/backward method returns self, so it's possible to chain methods together like that:

log.backward(10).tail { |line| puts line }

A command line utility named rtail, that uses File::Tail is provided as well.

Documentation

To create the documentation of this module, type

$ rake doc

and the API documentation is generated.

In the examples direcotry is a small example of tail and pager program that use this module. You also may want look at the end of file/tail.rb for a little example.

Author

Pierre Baillet pierre@baillet.name

Florian Frank flori@ping.de

License

This is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License Version 2 as published by the Free Software Foundation: www.gnu.org/copyleft/gpl.html