Plack::Middleware::Failsafe

新年1つ目のモジュールは例外を一番外側でcatchして、ログを出力後、エラー画面を表示するMiddlewareを作りました。もともとは、Railsのmiddlewareなのですが、RailsのMiddlewareは、Railsに依存してしまっていたので、依存しないように分離してあります。

http://github.com/dann/p5-plack-middleware-failsafe

使い方は、以下のようにerror画面を指定するだけです。

use Plack::Builder;
use Plack::Middleware::Failsafe;
 
my $app = builder {
    enable "Failsafe", error_template_path => "/myapp/errors/500.html";
    sub {
      die 'error';    
    };
};

今まではこの処理をWAFの中に作りこんでいたんですが、これはMiddlewareとして外側に出したほうがいいかなということで、ポーティングしてみました。