Class: Hatetepe::Parser
- Inherits:
-
Object
show all
- Includes:
- Events
- Defined in:
- lib/hatetepe/parser.rb
Instance Attribute Summary collapse
Attributes included from Events
#state
Instance Method Summary
collapse
Methods included from Events
#event, #event!, included
Constructor Details
#initialize(&block) ⇒ Parser
Returns a new instance of Parser.
21
22
23
24
25
26
27
28
|
# File 'lib/hatetepe/parser.rb', line 21
def initialize(&block)
initialize_parser
reset
if block
block.arity == 0 ? instance_eval(&block) : block.call(self)
end
end
|
Instance Attribute Details
#message ⇒ Object
Returns the value of attribute message.
19
20
21
|
# File 'lib/hatetepe/parser.rb', line 19
def message
@message
end
|
Instance Method Details
#<<(data) ⇒ Object
50
51
52
53
54
|
# File 'lib/hatetepe/parser.rb', line 50
def <<(data)
@parser << data
rescue HTTP::Parser::Error => e
raise Hatetepe::ParserError, e.message, e.backtrace
end
|
#initialize_parser ⇒ Object
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/hatetepe/parser.rb', line 30
def initialize_parser
@parser = HTTP::Parser.new.tap do |p|
p. = proc do ||
(p) if @headers_counter.even?
@headers_counter += 1
nil
end
p.on_body = method(:body)
p.on_message_complete = method(:complete)
end
end
|
#reset ⇒ Object
43
44
45
46
47
48
|
# File 'lib/hatetepe/parser.rb', line 43
def reset
@parser.reset!
event! :reset
@message = nil
@headers_counter = 0
end
|