Rack

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というファイルを使用します。