module Rclam::Helpers

Constants

FRESHCLAM_REGEX
INFECTED_FILES_REGEX
SCANNED_FILES_REGEX
SIGNATURES_REGEX
TIME_REGEX

Public Class Methods

clamscan_report(results) click to toggle source
# File lib/rclam/helpers.rb, line 25
def self.clamscan_report(results)
  infected_files = first_regex_capture(INFECTED_FILES_REGEX, results).to_i
  scanned_files = first_regex_capture(SCANNED_FILES_REGEX, results)
  signatures = first_regex_capture(SIGNATURES_REGEX, results)
  result = infected_files > 0 ? "!!INFECTED!!" : "CLEAN"

  result = %Q{
    Result:         #{result}
    Infections:     #{infected_files}
    Scanned Files:  #{scanned_files}
    Signatures:     #{signatures}
  }
  
  # Remove tabs from each line
  # https://stackoverflow.com/a/31345870
  result.each_line.map(&:strip).join("\n")
end
date_within_a_day?(date) click to toggle source
# File lib/rclam/helpers.rb, line 20
def self.date_within_a_day?(date)
  hours_difference = ((DateTime.now.to_time - date.to_time) / 3600).to_i
  hours_difference <= 24
end
first_regex_capture(regex, value) click to toggle source
# File lib/rclam/helpers.rb, line 9
def self.first_regex_capture(regex, value)
  match = regex.match(value)
  return nil if match.nil?
  match.captures.first
end
last_signatures_update() click to toggle source
# File lib/rclam/helpers.rb, line 15
def self.last_signatures_update
  version_header = %x{freshclam --version}
  DateTime.parse self.first_regex_capture(FRESHCLAM_REGEX, version_header)
end