Lobsterです🦞。イセエビとは違う属とのこと。
まとめ
- lobster.rb というサンプルコードがrack/rackにあった
- 最近探しに行ったらrack/rackになかった
- rack/rackupで元気にやってそう
lobster.rb
社内で開かれたライブラリのコードリーディング会*1の最初期に rack/rack のソースコードを読んでいたときのこと。とあるサンプルコードを見つけました。それが私と rack/lobster.rb との出会いでした。
このLobsterはかわいいやつで、右を向いたり、左を向いたり、時には自爆してメッセージを残したりします。これだけだと知らない人はなにがなんだかわからないと思うので補足すると、以下のような挙動をするサンプルサーバーです。レスポンス、パラメータの受け取り、Rack middlewareを利用した例外発生時のハンドリングやそのmiddlewareの処理の仕組みが組み込まれていて、Rackの仕組みがよく理解できるコードになっていると思います。
- リクエストするとロブスターのAAが表示される
flip
パラメータを渡すとロブスターの向きが変わるcrash
パラメータを渡すと RuntimeError が送出される
消えたLobsterとその行方
このlobster.rbは今rack/rackのmasterには存在しません。今は rack/rackup にお引越ししています。
rackup/lobster.rb at v0.2.3 · rack/rackup · GitHub
Rack 3で Rackupを別のgemに切り出した際にrackupのサンプルであるlobsterも一緒に移動された形になります。以下のアップグレードガイドにも記載があります。
rack/UPGRADE-GUIDE.md at main · rack/rack · GitHub
以下のPRで削除されていることも確認できます。