class LogfileInterval::Logfile
Constants
- ORDER_VALID_VALUES
Attributes
filename[R]
parser[R]
Public Class Methods
new(filename, parser, order = :desc)
click to toggle source
# File lib/logfile_interval/logfile.rb, line 7 def initialize(filename, parser, order = :desc) @filename = filename @parser = parser @order = order raise ArgumentError, "invalid order value: #{@order}" unless ORDER_VALID_VALUES.include?(@order.to_sym) end
Public Instance Methods
each_line() { |l| ... }
click to toggle source
# File lib/logfile_interval/logfile.rb, line 30 def each_line return unless exist? return enum_for(:each_line) unless block_given? case @order when :asc each_line_ascending { |l| yield l } when :desc each_line_descending { |l| yield l } end end
each_parsed_line() { |record| ... }
click to toggle source
# File lib/logfile_interval/logfile.rb, line 42 def each_parsed_line return enum_for(:each_parsed_line) unless block_given? each_line do |line| record = parser.create_record(line) yield record if record && !record.skip? end end
Also aliased as: each
exist?()
click to toggle source
# File lib/logfile_interval/logfile.rb, line 15 def exist? filename && File.exist?(@filename) end
first_parsed_line()
click to toggle source
# File lib/logfile_interval/logfile.rb, line 51 def first_parsed_line each_parsed_line.first end
Also aliased as: first
first_timestamp()
click to toggle source
# File lib/logfile_interval/logfile.rb, line 19 def first_timestamp return unless exist? File.open(@filename) do |f| while line = f.gets if record = parser.create_record(line) return record.time end end end end
Private Instance Methods
each_line_ascending() { |chomp| ... }
click to toggle source
# File lib/logfile_interval/logfile.rb, line 65 def each_line_ascending File.open(@filename) do |f| f.each_line do |line| yield line.chomp end end end
each_line_descending() { |chomp| ... }
click to toggle source
# File lib/logfile_interval/logfile.rb, line 57 def each_line_descending f = Util::FileBackward.new(@filename) while(line = f.gets) yield line.chomp end f.close end