RackとはWebアプリケーションサーバとWebアプリケーションフレームワーク間のインターフェース(接点)を共通化した仕様であり実装となっているライブラリのことです。
RailsがUnicornやPumaなどの複数のWebアプリケーションサーバ上で動作できているのは、RailsがRackインターフェイスに従っているからです。
rackに必要なインターフェイス
上記の規約を守ってRack上にアプリケーションを作っていきます。まず最初にgemパッケージとして配布されているrackをインストールします。
$ gem install rack
Successfully installed rack-2.2.3
Parsing documentation for rack-2.2.3
Done installing documentation for rack after 1 seconds
1 gem installed
$ rackup -v
Rack 1.3 (Release: 2.2.3)
rackをインストールすることでruckup
コマンドを使うことができるようになります。
Rackアプリケーションの規則に従ったAppクラスを定義します。
$ touch app.rb
class App
def call(env)
status = 200
headers = {"Content-Type" => "text/plain"}
body = ["sample"]
# 配列型で戻り値を設定する
[status, headers, body]
end
end
次にアプリケーションを作成するためのファイルを作成します。Rackが利用するエントリーポイント用のファイル名として一般的にはconfig.ru
というファイルを使用します。