JavaScriptをRubyっぽくしてみるテスト (その2)

追記 (3月1日)

バグを修正しました。

バグを見つけたので

現在、バグを見つけたので修正しています。
以下のコードのように、HogeクラスにHogeModuleモジュールをミックスインしようとした場合、うまくクラスを呼び出すことができなくなるバグです。

module("HogeModule", function() {
  function SuperClass() { };
});

module( function() {
 function Hoge() {
   include(HogeModule);

   function w() {
     SuperClass._new();
   };
 };
 Hoge._new().w();
});

ちなみに、クラスの定義については、アルファベットの最初の文字が大文字の関数だと、クラスと判断しています。それ以外はメソッドとして扱います。

アンダーバーについて

newやprivateなどの予約語には、アンダーバー ( _ )を頭に付けています。たとえば、newなら_new、privateなら_privateとなります。