class Servolux::Daemon::LogfileReader

:stopdoc:

def look_for=( val )

def look_for=( val )
  case val
  when nil;    @look_for = nil
  when String; @look_for = Regexp.new(Regexp.escape(val))
  when Regexp; @look_for = val
  else
    raise Error,
          "Don't know how to look for #{val.inspect} in the logfile"
  end
end

def stat

def stat
  if @filename and test(?f, @filename)
    File.stat @filename
  end
end

def updated?

def updated?
  s = stat
  @stat ||= s
  return false if s.nil?
  return false if @stat.mtime == s.mtime and @stat.size == s.size
  return true if @look_for.nil?
  File.open(@filename, 'r') do |fd|
    fd.seek @stat.size, IO::SEEK_SET
    while line = fd.gets
      return true if line =~ @look_for
    end
  end
  return false
ensure
  @stat = s
end