Class: LogfileInterval::LogfileSet

Inherits:
Object
  • Object
show all
Defined in:
lib/logfile_interval/logfile_set.rb

Constant Summary collapse

ORDER_VALID_VALUES =
[ :asc, :desc ]

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(filenames, parser, order = :desc) ⇒ LogfileSet

Returns a new instance of LogfileSet.

Raises:

  • (ArgumentError)


7
8
9
10
11
12
13
# File 'lib/logfile_interval/logfile_set.rb', line 7

def initialize(filenames, parser, order = :desc)
  @parser    = parser
  @filenames = filenames
  @order    = order

  raise ArgumentError, "invalid order value: #{@order}" unless ORDER_VALID_VALUES.include?(@order.to_sym)
end

Instance Attribute Details

#parserObject (readonly)

Returns the value of attribute parser.



3
4
5
# File 'lib/logfile_interval/logfile_set.rb', line 3

def parser
  @parser
end

Instance Method Details

#each_line(&block) ⇒ Object



32
33
34
35
# File 'lib/logfile_interval/logfile_set.rb', line 32

def each_line(&block)
  return enum_for(__method__) unless block_given?
  each_by_method(__method__, &block)
end

#each_parsed_line(&block) ⇒ Object Also known as: each



26
27
28
29
# File 'lib/logfile_interval/logfile_set.rb', line 26

def each_parsed_line(&block)
  return enum_for(__method__) unless block_given?
  each_by_method(__method__, &block)
end

#first_parsed_lineObject Also known as: first



37
38
39
# File 'lib/logfile_interval/logfile_set.rb', line 37

def first_parsed_line
  each_parsed_line.first
end

#ordered_filenamesObject



15
16
17
18
19
20
21
22
23
24
# File 'lib/logfile_interval/logfile_set.rb', line 15

def ordered_filenames
  time_for_files = time_for_files(existing_filenames)
  order_filenames_asc = time_for_files.to_a.sort_by { |arr| arr[1] }.map { |arr| arr[0] }
  case @order
  when :desc
    order_filenames_asc.reverse
  when :asc
    order_filenames_asc
  end
end