Ruby rack
Rack is the gem that provides the interface between web frameworks (ruby on rails, sinatra) and web servers (webrick, puma, unicorn) in ruby world.
The Rack interface
Respond to
callmethod, which accepts a single argument calledenv, and returns an array with three elements:status,headers,body.
The rack hello world - class version
require 'rack'
class HelloWorld
def call(env)
[200, {'Content-Type' => 'text/plain'}, ['Hello World']]
end
end
Rack::Handler::WEBrick.run HelloWorld.new
# open http://localhost:8080
# Hello World
The rack hello world - lambda version
require 'rack'
app = -> (env) { [200, {'Content-Type' => 'text/plain'}, ['Hello World']] }
Rack::Handler::WEBrick.run app
# open http://localhost:8080
# Hello World
References