Class: HTTPX::Parser::HTTP1

Inherits:
Object
  • Object
show all
Defined in:
lib/httpx/parser/http1.rb

Constant Summary collapse

VERSIONS =
%w[1.0 1.1].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(observer, max_headers, max_header_value_size) ⇒ HTTP1

Returns a new instance of HTTP1.



12
13
14
15
16
17
18
19
20
21
# File 'lib/httpx/parser/http1.rb', line 12

def initialize(observer, max_headers, max_header_value_size)
  @observer = observer
  @state = :idle
  @buffer = "".b
  @headers = {}
  @max_headers = max_headers
  @max_header_value_size = max_header_value_size
  @content_length = nil
  @_has_trailers = @upgrade = false
end

Instance Attribute Details

#headersObject (readonly)

Returns the value of attribute headers.



10
11
12
# File 'lib/httpx/parser/http1.rb', line 10

def headers
  @headers
end

#http_versionObject (readonly)

Returns the value of attribute http_version.



10
11
12
# File 'lib/httpx/parser/http1.rb', line 10

def http_version
  @http_version
end

#status_codeObject (readonly)

Returns the value of attribute status_code.



10
11
12
# File 'lib/httpx/parser/http1.rb', line 10

def status_code
  @status_code
end

Instance Method Details

#<<(chunk) ⇒ Object



23
24
25
26
# File 'lib/httpx/parser/http1.rb', line 23

def <<(chunk)
  @buffer << chunk
  parse
end

#reset!Object



28
29
30
31
32
33
34
# File 'lib/httpx/parser/http1.rb', line 28

def reset!
  @state = :idle
  @headers = {}
  @content_length = nil
  @_has_trailers = @upgrade = false
  @buffer = @buffer.to_s
end

#upgrade?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/httpx/parser/http1.rb', line 36

def upgrade?
  @upgrade
end

#upgrade_dataObject



40
41
42
# File 'lib/httpx/parser/http1.rb', line 40

def upgrade_data
  @buffer.to_s
end