Class: Net::IMAP::ResponseReader

Inherits:
Object
  • Object
show all
Includes:
NumValidator
Defined in:
lib/net/imap/response_reader.rb

Overview

Constant Summary

Constants included from NumValidator

NumValidator::NUMBER_RE, NumValidator::NZ_NUMBER_RE

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from NumValidator

coerce_mod_sequence_value, coerce_mod_sequence_valzer, coerce_number, coerce_number64, coerce_nz_number, coerce_nz_number64, ensure_mod_sequence_value, ensure_mod_sequence_valzer, ensure_number, ensure_number64, ensure_nz_number, ensure_nz_number64, valid_mod_sequence_value?, valid_mod_sequence_valzer?, valid_number64?, valid_number?, valid_nz_number64?, valid_nz_number?

Constructor Details

#initialize(client, sock) ⇒ ResponseReader

Returns a new instance of ResponseReader.



11
12
13
14
15
16
17
# File 'lib/net/imap/response_reader.rb', line 11

def initialize(client, sock)
  @client, @sock = client, sock
  # cached config
  @max_response_size = nil
  # response buffer state
  @buff = @literal_size = nil
end

Instance Attribute Details

#clientObject (readonly)

Returns the value of attribute client.



9
10
11
# File 'lib/net/imap/response_reader.rb', line 9

def client
  @client
end

Instance Method Details

#read_response_bufferObject



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/net/imap/response_reader.rb', line 19

def read_response_buffer
  @max_response_size = client.max_response_size
  @buff = String.new
  catch :eof do
    while true
      guard_response_too_large!
      read_line
      # check before allocating memory for literal
      guard_response_too_large!
      break unless literal_size
      read_literal
    end
  end
  buff
ensure
  @buff = @literal_size = nil
end