2015/04/18

enable_if はランタイムの分岐ですお

Plack::Middleware のお話。

builder {
    enable_if { $ENV{PLACK_ENV} eq 'development' } 'Foo';
    $app;
};

上のようなのは何か間違っているぞと。

  • Foo ミドルウェアは $ENV{PLACK_ENV} によらずロードされてる
  • リクエストごとに $ENV{PLACK_ENV} eq 'development' 走る

これはドキュメントにも書いてあるよ

Plack::Builder

CONDITIONAL MIDDLEWARE SUPPORT

You can use enable_if to conditionally enable middleware based on the runtime environment.

豆でした。

サイト内検索