Last Modified:
Release Slack-v0.4.0 #Perl #Slack
この文書は以前のバージョン0.03とv0.4.0の変更点を記述しています。
このリリースには以前のバージョンと互換性の無い変更が含まれています。
インターフェースの追加
ありません。
インターフェースの変更
コントローラーのprefixを上書きできるようになりました
MyApp::Root
と名付けられたコントローラーが/
にマッチするという仕組みは悪です。
/root/
にマッチするコントローラーを(そのような要求は少ないことは分かっていますが)美しく記述できません。
特殊な名前は忌むべき存在です。
Dancerを参考に、必要とする場合にprefixを上書きできるようになりました。
sub prefix { return q{/}; }
この変更により、MyApp::Root
はその名の通り/root/
にマッチするようになりました。
以前のバージョンではルートコントローラーはMyApp::Root
という形式のパッケージ名である必要がありました。
コントローラーはアプリケーションそのものを保持するようになりました
今後はコントローラーのapp
アクセサを通してconfig
を取得してください。
Slack::Log
がSlack::Util
に変更されました
これはログ出力以外の役割を担うためです。
インターフェースの削除
コンテキストオブジェクトが一旦削除されました
コンテキストオブジェクトの仕様が不安定であるため、一旦削除されました。
ビューの実行のため、代わりにres->stash->{c}
が用意されました。
res->stash->{c} = { app => $self, req => $req };
res->param
が削除されました
res->param
はもはや使われていませんでした。
実装の変更
Smart::Comments
の出力がより見やすくなりました
- 正規表現の出力
qr//
がqr{}
に正しく置換されるように修正されました。 なお、qr//
からqr{}
に置換するのは頻出するスラッシュのエスケープ\/
を見やすくするためです。 Time::Piece
オブジェクトがコンパクトに出力されるようになりました。bless( do{\(my $o = '1970-01-01T00:00:00')}, 'Time::Piece#stringify' )
以前のバージョンでは
Data::Dumper
の出力そのものでした。bless( [ 0, 0, 0, 1, 0, '70', 4, 0, 0, 0, 1 ], 'Time::Piece' );
res->stash
が空のハッシュで初期化されるように修正されました
以前のバージョンではundef
でした。
appdir
の検出に失敗していた問題が修正されました
パッケージ名が単層でない場合、典型的にはMyApp::Web
などの場合にappdir
の検出に失敗していた問題が修正されました。
未定義のアクションコードを呼んでしまう問題が修正されました
リクエストに対応するアクションコードが定義されている場合のみ呼び出されるようになりました。
実装例が追加されました
簡単なアプリケーションの実装例がexample/ディレクトリに追加されました。