Class: ClamChowder::Scanner
- Inherits:
-
Object
- Object
- ClamChowder::Scanner
- Defined in:
- lib/clam_chowder/scanner.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(backend = ClamChowder.default_backend) ⇒ Scanner
constructor
A new instance of Scanner.
- #scan_io(readable) ⇒ Object
Constructor Details
#initialize(backend = ClamChowder.default_backend) ⇒ Scanner
Returns a new instance of Scanner.
12 13 14 |
# File 'lib/clam_chowder/scanner.rb', line 12 def initialize(backend = ClamChowder.default_backend) @backend ||= ClamChowder::Backend.lookup(backend).new end |
Class Method Details
.infected_stream?(io) ⇒ Boolean
8 9 10 |
# File 'lib/clam_chowder/scanner.rb', line 8 def self.infected_stream?(io) ::ClamChowder.infected_stream?(io) # XXX compatibility end |
Instance Method Details
#scan_io(readable) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/clam_chowder/scanner.rb', line 16 def scan_io(readable) begin Tempfile.open('clam_chowder_temp', encoding: 'BINARY') do |file| while bytes = readable.read(1024 * 32) file.write(bytes.strip) end file.rewind file.chmod(0644) @backend.scan_file(file.path) end rescue => e raise ScanException.new(e) end ensure readable.rewind if readable.respond_to?(:rewind) end |