Class: Pronghorn::Connection
- Inherits:
-
EventMachine::Connection
- Object
- EventMachine::Connection
- Pronghorn::Connection
- Defined in:
- lib/pronghorn/connection.rb
Instance Attribute Summary collapse
-
#app ⇒ Object
Returns the value of attribute app.
-
#request ⇒ Object
Returns the value of attribute request.
-
#response ⇒ Object
Returns the value of attribute response.
-
#server ⇒ Object
Returns the value of attribute server.
Instance Method Summary collapse
- #post_init ⇒ Object
- #process ⇒ Object
- #process_request ⇒ Object
- #receive_data(data) ⇒ Object
- #remote_address ⇒ Object
- #send_response(result) ⇒ Object
- #unbind ⇒ Object
Instance Attribute Details
#app ⇒ Object
Returns the value of attribute app.
8 9 10 |
# File 'lib/pronghorn/connection.rb', line 8 def app @app end |
#request ⇒ Object
Returns the value of attribute request.
4 5 6 |
# File 'lib/pronghorn/connection.rb', line 4 def request @request end |
#response ⇒ Object
Returns the value of attribute response.
6 7 8 |
# File 'lib/pronghorn/connection.rb', line 6 def response @response end |
#server ⇒ Object
Returns the value of attribute server.
10 11 12 |
# File 'lib/pronghorn/connection.rb', line 10 def server @server end |
Instance Method Details
#post_init ⇒ Object
12 13 14 15 16 |
# File 'lib/pronghorn/connection.rb', line 12 def post_init @request = Request.new @response = Response.new @request.parser. = method(:process) end |
#process ⇒ Object
22 23 24 25 |
# File 'lib/pronghorn/connection.rb', line 22 def process @request.body.rewind send_response(process_request) end |
#process_request ⇒ Object
27 28 29 30 31 32 33 |
# File 'lib/pronghorn/connection.rb', line 27 def process_request @request.set_environment({ "REMOTE_ADDR" => remote_address, "SERVER_PORT" => @server.port.to_s }) @app.call(@request.env) end |
#receive_data(data) ⇒ Object
18 19 20 |
# File 'lib/pronghorn/connection.rb', line 18 def receive_data(data) @request.parser << data end |
#remote_address ⇒ Object
50 51 52 53 54 |
# File 'lib/pronghorn/connection.rb', line 50 def remote_address Socket.unpack_sockaddr_in(get_peername)[1] rescue nil end |
#send_response(result) ⇒ Object
35 36 37 38 39 40 41 42 43 44 |
# File 'lib/pronghorn/connection.rb', line 35 def send_response(result) return unless result result = result.to_a @response.status, @response.headers, @response.body = *result @response.each do |chunk| send_data chunk end @response.close post_init end |
#unbind ⇒ Object
46 47 48 |
# File 'lib/pronghorn/connection.rb', line 46 def unbind @server.finish_connection(self) end |