Class: LogfileInterval::LogfileSet
- Inherits:
-
Object
- Object
- LogfileInterval::LogfileSet
- Defined in:
- lib/logfile_interval/logfile_set.rb
Instance Attribute Summary collapse
-
#parser ⇒ Object
readonly
Returns the value of attribute parser.
Instance Method Summary collapse
- #each_line ⇒ Object
- #each_parsed_line ⇒ Object
- #existing_filenames ⇒ Object
-
#initialize(filenames, parser) ⇒ LogfileSet
constructor
A new instance of LogfileSet.
- #last_record ⇒ Object
- #ordered_filenames ⇒ Object
Constructor Details
#initialize(filenames, parser) ⇒ LogfileSet
Returns a new instance of LogfileSet.
5 6 7 8 |
# File 'lib/logfile_interval/logfile_set.rb', line 5 def initialize(filenames, parser) @parser = parser @filenames = filenames end |
Instance Attribute Details
#parser ⇒ Object (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 ⇒ Object
34 35 36 37 38 39 40 41 42 43 |
# File 'lib/logfile_interval/logfile_set.rb', line 34 def each_line return enum_for(:each_line) unless block_given? ordered_filenames.each do |filename| tfile = Logfile.new(filename, parser) tfile.each_line do |line| yield line end end end |
#each_parsed_line ⇒ Object
23 24 25 26 27 28 29 30 31 32 |
# File 'lib/logfile_interval/logfile_set.rb', line 23 def each_parsed_line return enum_for(:each_parsed_line) unless block_given? ordered_filenames.each do |filename| tfile = Logfile.new(filename, parser) tfile.each_parsed_line do |record| yield record end end end |
#existing_filenames ⇒ Object
10 11 12 |
# File 'lib/logfile_interval/logfile_set.rb', line 10 def existing_filenames @existing_filenames ||= @filenames.select { |f| File.exist?(f) } end |
#last_record ⇒ Object
45 46 47 48 49 |
# File 'lib/logfile_interval/logfile_set.rb', line 45 def last_record each_parsed_line do |record| return record end end |
#ordered_filenames ⇒ Object
14 15 16 17 18 19 20 21 |
# File 'lib/logfile_interval/logfile_set.rb', line 14 def ordered_filenames time_for_file = existing_filenames.inject({}) do |h, filename| file = Logfile.new(filename, parser) h[filename] = file. h end time_for_file.to_a.sort_by { |arr| arr[1] }.map { |arr| arr[0] }.reverse end |