Sha256: 49315b7ee4bb65b4d735712af4a47a3b9ab6a5ffdfb1d1759e949002cc0901d3

Contents?: true

Size: 968 Bytes

Versions: 1

Compression:

Stored size: 968 Bytes

Contents

module ResqueLogErrorParser
  class Worker

    def self.queue
      if ResqueLogErrorParser.queue.nil?
        raise ArgumentError, "you must set ResqueLogErrorParser.queue"
      end

      ResqueLogErrorParser.queue
    end

    def self.perform
      self.log_files.each do |file|
        self.lines_for(file).each do |line|
          ResqueLogErrorParser.error_handler.call(line)
        end
      end
    end

    private

    def self.log_files
      ResqueLogErrorParser.log_paths.map do |log_path|
        Dir.glob(log_path)
      end.flatten
    end

    def self.lines_for(file)
      lines = Lines.new(File.open(file).lines.to_a)
      lines.filter_by(self.filters).strip_newlines
    end

    def self.filters
      [self.time_filter_regex, ResqueLogErrorParser.line_filter_keys].flatten
    end

    def self.time_filter_regex
      time_filter_str = Time.now.strftime(ResqueLogErrorParser.line_date_format)
      /#{time_filter_str}/
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
resque_log_error_parser-1.0.0 lib/resque_log_error_parser/worker.rb