class LogfileInterval::Interval

Attributes

end_time[R]
length[R]
parser[R]
size[R]
start_time[R]

Public Class Methods

new(end_time, length, parser_columns) click to toggle source
# File lib/logfile_interval/interval.rb, line 8
def initialize(end_time, length, parser_columns)
  @end_time   = end_time
  @start_time = end_time - length
  @length     = length
  @parser     = parser
  @size = 0

  @aggregators = AggregatorSet.new(parser_columns)
end

Public Instance Methods

[](name) click to toggle source
# File lib/logfile_interval/interval.rb, line 18
def [](name)
  @aggregators[name]
end
add_record(record) click to toggle source
# File lib/logfile_interval/interval.rb, line 29
def add_record(record)
  raise OutOfRange, 'too recent' if record.time>@end_time
  raise OutOfRange, 'too old'    if record.time<=@start_time

  @size += 1
  @aggregators.add(record)
end
to_hash() click to toggle source
# File lib/logfile_interval/interval.rb, line 22
def to_hash
  h = @aggregators.to_hash
  h[:start_time] = self.start_time
  h[:end_time] = self.end_time
  h
end