タグ

2012年8月18日のブックマーク (2件)

  • Rackをminifyした僅か100行のLackで学ぶRackの中身

    「エラーメッセージから学ぶRack最初の一歩」および「エラーメッセージから学ぶRack - Middlewareの魔法」の続きです。 前2の記事で、Rackはrackupコマンドを起動すると、defaultでconfig.ruを読み込みWebサーバを起動するということが分かりました。また、config.ruの中でuseを使ってmiddlewareを指定すると、Webアプリをラップして内側から外側に向けてそれらの#callを順次呼び出すということも分かりました。ちなみに僕はこの呼び出しスタイルを今後「マトリョーシカ呼び出し」と呼ぶことにしました。 ここで2点気になることがあります。config.ruはRubyスクリプトです。rackupコマンドの実行からRackはどうやってこのファイルを実行しているのでしょうか。まあ簡単に想像はつきますが(エバるほどではない)、これが1点目です。もう1点は

    seiunsky
    seiunsky 2012/08/18
    すごい勉強になるわーと思いながら読んでたら自分のブログがでてきてびっくりんこ
  • エラーメッセージから学ぶRack - Middlewareの魔法

    前回の記事「エラーメッセージから学ぶRack - 最初の一歩」の続きです。 噂によるとRackにはMiddlewareなる魔法があるそうです。そしてRack古文書にはMiddlewareについて次のようにあります。 useの呪文を唱えよ。さすれば扉は開かれん 準備 前回作った、なんちゃってWebフレームワーク「draque」を継続して使います。config.ruが少し長くなったので、Webアプリの体を別ファイルdraque.rbに移します。 #draque.rb module Draque @@routes = { get:{} } def draque(env) path = env['PATH_INFO'] if res = @@routes[:get][path] res.call(env) else [ 404, headers, not_found ] end end def

    seiunsky
    seiunsky 2012/08/18
    すごいわかりやすい