lib/saorin/server/rack.rb in saorin-0.3.0 vs lib/saorin/server/rack.rb in saorin-0.3.1
- old
+ new
@@ -8,17 +8,28 @@
DEFAULT_HEADERS = {
'Content-Type' => 'application/json'
}.freeze
- def initialize(handler, options = {}, &block)
- super handler, options
+ attr_reader :server
- ::Rack::Server.start({
+ def initialize(handler, options = {})
+ super
+ @server = ::Rack::Server.new({
:app => self,
:Host => options[:host],
:Port => options[:port],
- }.merge(options))
+ }.merge(@options))
+ end
+
+ def start(&block)
+ @server.start &block
+ end
+
+ def shutdown
+ if @server.server.respond_to?(:shutdown)
+ @server.server.shutdonw
+ end
end
def call(env)
request = ::Rack::Request.new(env)
response = ::Rack::Response.new([], 200, DEFAULT_HEADERS.dup)