現在のMojoについて
追記
ここではMojoのバージョンは0.991250について書いています。
CharsbarさんがMojoについて書いているので便乗エントリ。
ここ数ヶ月、会社で使っているツールのために毎日git pullして
動作させるために毎日アプリケーションを修正してきた身として
ちょっと書きます。
Charsbarさんのエントリにもあるとおり、1.0へ向けての
大きな変更がはいったので、以前のバージョンを使っている
アプリケーションはほとんど手を加えないと動かなくなっていると
思われます。
なにせ、各クラスのベースになるMojo::Baseに修正が
入ったため、アクセッサの書き方が変更になり
__PACKAGE__->attr("foo" => (default => sub { Hoge->new });
という以前の書き方では動作しなくなってしまいました。
現在ではこんな感じにちょっとだけシンプルになっています。
__PACKAGE__->attr("foo" => sub { Hoge->new });
その他にもContextを各ディスパッチしたメソッドに渡していたんですが
Mojolicous::Controllerを継承している、Controllerをnewするときのblessの
引数に取るようになったため
sub foo { my ($self, $c) = @_; # or my $c = $self->ctx; $c->req->param("hoge"); }
とかだったのが
sub foo { my $self = shift; $self->req->param("hoge"); }
という風に$selfから直接リクエストを取るように変更されています。
(実はなかでは$self->tx->reqになっているんですが)
この他にも、APIの変更、さまざまなバグフィックスや新機能追加が
されているので、0.900xとかからのアップデートは結構大変だと思われます。
そろそろアップデートするかというかたは、注意したほうがいいです。
動かなくなると思います。
あと長くなったのでVersion Numbers and Backwards Compatibilityに
ついては別のエントリで。
それと、YAPC::AsiaのLTはいつ決まるのかな。
いちおうMojoでなんか話したいなと思っているんで(たぶん・・)。