Hatena::ブログ(Diary)

oct inaodu

 | 

2006-02-13

brazil2006-02-13

RhinoからMochiKitを使う


詳細未調査です。

Rhinoでも、SpiderMonkeyでも、Mochikitを使えるよ、とBobさん。

早速試して見ました。


まず、配布プロダクトzipには含まれていないので、Subversionリポジトリ(http://svn.mochikit.com/mochikit/trunk)から最新のコードを取得します。

/trunk/scripts/spidermochi.jsを、/trunk/に持ってきます。

ファイルを開き、一番上の行のシェル指定行(#!/usr/bin/env js -w)を消して、以下コマンドで実行です。

jrunscript -f spidermochi.js

テストが実行されて、概ね動いていますが、5つぐらいこけてます。ちょっと後で見てみようっと。

spidermochi.jsのコードは以下。

#!/usr/bin/env js -w
var MochiKit = {__export__:true};
var JSAN = {
  global: this,
  use: function (module, symbols) {
    var components = module.split(/\./);
    var fn = components.join('/') + '.js';
    var o = JSAN.global;
    var i, c;
    for (i = 0; i < components.length; i++) {
      o = o[components[i]];
      if (typeof(o) == 'undefined') {
        break;
      }
    }
    if (typeof(o) != 'undefined') {
      return o;
    }

    load(fn);
    o = JSAN.global;
    for (i = 0; i < components.length; i++) {
      o = o[components[i]];
      if (typeof(o) == 'undefined') {
        return undefined;
      }
    }
    if (!symbols) {
      var tags = o.EXPORT_TAGS;
      if (tags) {
        symbols = tags[':common'] || tags[':all'];
      }
    }
    if (symbols) {
      for (i = 0; i < symbols.length; i++) {
        c = symbols[i];
        JSAN.global[c] = o[c];
      }
    }
    return o;
  }
};
JSAN.use('MochiKit.MockDOM');
var window = this;
var document = MochiKit.MockDOM.createDocument();
JSAN.use('MochiKit.MochiKit');

JSAN.use('MochiKit.Test');

print("[[ MochiKit.Base ]]");
runTests('tests.test_Base');
print("[[ MochiKit.Color ]]");
runTests('tests.test_Color');
print("[[ MochiKit.DateTime ]]");
runTests('tests.test_DateTime');
print("[[ MochiKit.Format ]]");
runTests('tests.test_Format');
print("[[ MochiKit.Iter ]]");
runTests('tests.test_Iter');
print("[[ MochiKit.Logging ]]");
runTests('tests.test_Logging');

JSANのモック書いてます...。dojo使えないのかな...。

documentや、windowモックも作ってますが、BaseやIterを使う分にはいらないようです。

1.0あたりで、テストをJSANべったりから、スクリプトだけに切り離して依存性を下げているのが効いてます。

っと、以下で、Bobさんが言ってました。やはり、SpiderMonkeyか...。外部ライブラリとの接続はスムーズなのかな?


kzyskzys 2007/08/30 11:43 svn.mochiki.com → svn.mochikit.com です

brazilbrazil 2007/09/04 10:08 39

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

 |