Sha256: 49b0d79f239a72d17a540d756d438005262119e67a8198a34d3fc94b8e5310d7

Contents?: true

Size: 1.06 KB

Versions: 3

Compression:

Stored size: 1.06 KB

Contents

require "logger"

require_relative "antivirus/version"
require_relative "antivirus/scanner"
require_relative "antivirus/adapters"

require "active_support/core_ext/module/attribute_accessors"

module Ddr
  module Antivirus

    class VirusFoundError < ::StandardError; end

    def self.configure
      yield self
    end

    #
    # Custom logger
    #
    # Defaults to Rails logger if Rails is loaded; otherwise logs to STDERR.
    #
    mattr_accessor :logger do
      if defined?(Rails) && Rails.logger
        Rails.logger
      else 
        Logger.new(STDERR)    
      end
    end

    #
    # Scanner adapter
    #
    # Defaults to:
    # - :clamav adapter if the 'clamav' gem is installed; 
    # - :clamd adapter if the 'clamdscan' executable is available;
    # - otherwise, the :null adapter.
    #
    mattr_accessor :scanner_adapter do
      begin
        require "clamav"
        :clamav
      rescue LoadError
        require "open3"
        out, status = Open3.capture2e("which -a clamdscan")
        status.success? ? :clamd : :null
      end
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ddr-antivirus-1.3.3 lib/ddr/antivirus.rb
ddr-antivirus-1.3.2 lib/ddr/antivirus.rb
ddr-antivirus-1.3.1 lib/ddr/antivirus.rb