Angelos::Class, Angelos::PluginでMouseをラップしている理由

http://angelos.g.hatena.ne.jp/lyokato/20090120/1232429809

lyokatoさんが書いてくれているのですが、AngelosではMouseをラップして使っています。

この目的は幾つかあって、

  • Mouse, Mooseの違いを吸収する事
    • Mouseがいざなくなったとかそういうときのためですね
  • no Mouse; __PACKAGE__->meta->make_immutable; 1; と書かないようにする事。
    • 特にMouseではimmutableにする機能がないので、上記の記述はデフォルトで採用されるべきもので、これを簡単にかけるようにしておくという支援はあったほうがいいと思っています。これをやり忘れる事で遅くなってしまう事を防ぎやすくなります。
  • フレームワークでのmetaへの拡張を透過的に扱えるようにする事
    • フレームワーク側でベーシックなクラスを用意する事で、後の拡張の自由度が生まれます

とても簡易なラップ方法ではあるのですが、現状のようにMouse、Mooseが並行して開発される状況では割と効果的ではないかなという気はしています。