Class: ASIR::Transport::Rack
- Inherits:
-
HTTP
- Object
- ASIR::Transport
- HTTP
- ASIR::Transport::Rack
- Defined in:
- lib/asir/transport/rack.rb
Overview
!SLIDE Rack Transport
Defined Under Namespace
Classes: App
Constant Summary
Constants inherited from HTTP
HTTP::APPLICATION_BINARY, HTTP::CONTENT_TYPE
Constants included from ASIR::ThreadVariable
ASIR::ThreadVariable::DEBUG, ASIR::ThreadVariable::EMPTY_HASH, ASIR::ThreadVariable::SETTER
Instance Attribute Summary
Attributes inherited from HTTP
Attributes inherited from ASIR::Transport
#after_invoke_message, #after_receive_message, #around_serve_message, #before_send_message, #coder_needs_result_message, #decoder, #encoder, #invoker, #message_count, #needs_message_identifier, #needs_message_timestamp, #on_exception, #on_result_exception, #one_way, #running, #verbose
Attributes included from Log
Instance Method Summary collapse
-
#_receive_message(state) ⇒ Object
Receive the Message payload String from the Rack::Request object.
-
#_send_result(state) ⇒ Object
Send the Result payload String in the Rack::Response object as application/binary.
-
#call(env) ⇒ Object
Rack application handler.
-
#prepare_server!(opts = { }) ⇒ Object
Dummy server.
-
#rack_app(&blk) ⇒ Object
Constructs a Rackable App from this Transport.
-
#run_server! ⇒ Object
WEBrick under Rack.
- #stop_server! ⇒ Object
Methods inherited from HTTP
#_receive_result, #_send_message, #client, #close, #message_uri
Methods inherited from ASIR::Transport
#_after_invoke_message, #_subclass_responsibility, #around_serve_message!, #initialize, #invoke_message!, #needs_message_identifier?, #needs_message_timestamp?, #receive_message, #receive_result, #send_message, #send_result, #serve_message!, #stop!, #with_force_stop!, #with_server_signals!
Methods included from Log
#_log, #_log_enabled=, #_log_enabled?, #_log_format, #_log_result, enabled, enabled=, included
Methods included from Initialization
Methods included from AdditionalData
#[], #[]=, #_additional_data, #additional_data, #additional_data!, #additional_data=, included
Methods included from Message::Delay
#relative_message_delay!, #wait_for_delay!
Methods included from ASIR::ThreadVariable
Constructor Details
This class inherits a constructor from ASIR::Transport
Instance Method Details
#_receive_message(state) ⇒ Object
Receive the Message payload String from the Rack::Request object.
10 11 12 13 |
# File 'lib/asir/transport/rack.rb', line 10 def state rack_request = state.in_stream state. = rack_request.body.read end |
#_send_result(state) ⇒ Object
Send the Result payload String in the Rack::Response object as application/binary.
16 17 18 19 20 |
# File 'lib/asir/transport/rack.rb', line 16 def _send_result state rack_response = state.out_stream rack_response[CONTENT_TYPE] = APPLICATION_BINARY rack_response.write state.result_payload end |
#call(env) ⇒ Object
Rack application handler.
40 41 42 43 44 45 |
# File 'lib/asir/transport/rack.rb', line 40 def call(env) rq = ::Rack::Request.new(env) rs = ::Rack::Response.new rq, rs rs.finish # => [ status, header, rbody ] end |
#prepare_server!(opts = { }) ⇒ Object
Dummy server.
50 51 52 |
# File 'lib/asir/transport/rack.rb', line 50 def prepare_server! opts = { } self end |
#rack_app(&blk) ⇒ Object
Constructs a Rackable App from this Transport.
23 24 25 |
# File 'lib/asir/transport/rack.rb', line 23 def rack_app &blk App.new(self, &blk) end |
#run_server! ⇒ Object
WEBrick under Rack.
55 56 57 58 59 60 61 62 |
# File 'lib/asir/transport/rack.rb', line 55 def run_server! #require 'rack/handler' u = URI.parse(uri); port = u.port # <= REFACTOR ::Rack::Handler::WEBrick.run \ ::Rack::ShowExceptions.new(::Rack::Lint.new(self.rack_app)), :Port => port self end |
#stop_server! ⇒ Object
64 65 66 67 |
# File 'lib/asir/transport/rack.rb', line 64 def stop_server! # NOT IMPLEMENTED self end |