class ClamAV::Connection

Public Class Methods

new(args) click to toggle source
# File lib/clamav/connection.rb, line 21
def initialize(args)
  socket  = args.fetch(:socket)  { missing_required_argument(:socket) }
  wrapper = args.fetch(:wrapper) { missing_required_argument(:wrapper) }

  if socket && wrapper
    @socket = socket
    @wrapper = wrapper
  else
    raise ArgumentError
  end
end

Public Instance Methods

establish_connection() click to toggle source
# File lib/clamav/connection.rb, line 33
def establish_connection
  wrapped_request = @wrapper.wrap_request("IDSESSION")
  @socket.write wrapped_request
end
raw_write(str) click to toggle source
# File lib/clamav/connection.rb, line 52
def raw_write(str)
  @socket.write str
end
read_response() click to toggle source
# File lib/clamav/connection.rb, line 43
def read_response
  @wrapper.read_response(@socket)
end
send_request(str) click to toggle source
# File lib/clamav/connection.rb, line 47
def send_request(str)
  write_request(str)
  read_response
end
write_request(str) click to toggle source
# File lib/clamav/connection.rb, line 38
def write_request(str)
  wrapped_request = @wrapper.wrap_request(str)
  @socket.write wrapped_request
end

Private Instance Methods

missing_required_argument(key) click to toggle source
# File lib/clamav/connection.rb, line 57
def missing_required_argument(key)
  raise ArgumentError, "#{key} is required"
end