Class: RubyFS::Lexer

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby_fs/lexer.rb

Constant Summary collapse

ContentLengthPattern =
/Content-length:\s*(\d+)/i
HeaderFormatPattern =
/\A([^\s:]+)\s*:\s*/

Instance Method Summary collapse

Constructor Details

#initialize(callback) ⇒ Lexer

Returns a new instance of Lexer.



6
7
8
9
10
11
12
13
14
# File 'lib/ruby_fs/lexer.rb', line 6

def initialize(callback)
  @callback = callback

  @data_mode  = :lines
  @delimiter  = "\n"
  @linebuffer = []

  init_for_request
end

Instance Method Details

#receive_data(data) ⇒ Object Also known as: <<



16
17
18
19
20
21
22
23
24
25
# File 'lib/ruby_fs/lexer.rb', line 16

def receive_data(data)
  return unless data && data.length > 0

  case @data_mode
  when :lines
    receive_line_data data
  when :text
    receive_text_data data
  end
end