Firefox, Add-on SDKでクラスを書く

Add-on SDKでのクラスの作り方。

traitsというモジュールを使えば良い。mix-inも出来るし、名前が衝突したら例外を出したり(compose, 出したくない時はoverride)、mix-in時に作らなければいけないプロパティを指定出来たりと(required、C#のinterfaceに近い)かなり高機能のようだ。

が、ドキュメントの整備が追いついていないようで、下のドキュメントの中のサンプルコードも所々バグがあり苦労した。

結局、実際に動いているソースを見るのが一番参考になった。ソースコードがちゃんとあるのがありがたい。下のリンクはWidegetクラスを生成する辺り。

完全に動かしたサンプルはこちら、ドキュメントと違う所は bug のマークを付けている(tests/の下に放り込んで実行、テストもかなり綺麗に書ける)。

  1. Listクラスを作る
  2. そいつに範囲制限をつけたRangeクラスをMix-inで作る
  3. 簡単なEnumerableモジュールを書いたり

となかなか楽しいサンプルだった。