【解説&考察】Omega Trick

ども、小堤です。
まぁ、OmegaTrickをちょいちょい実装していってるんですが、あんまりこれに時間かけることのできない現状・・・orz

んで、どうせ後でマニュアル書くのめんどくさくなること必死なので、ブログにメモって、あとでコピペして修正とか。
続くのか?ってはなしだけども。

さて、GitHubにのっかっている、OmegaTrickはmasterでバージョン0.5.0を実装していっています。
ソース見る人は、gitでひっぱってくだしー。

んで、先に、この0.5.0から0.4.0までの構造とがらっと変わることは、さいさんピーピーいってたのですが、その詳細をここにメモします。

Omega Trickの方針

偉そうに書いてますが、前回のOmega Trickは、完全にExt JS向けでした。まぁ完成してないけどね。
んで、今回は、「Ext JS/Ext Core/Sencha Touch」をターゲットにしています。
まぁ、この時点で、ぽかぁ〜んって感じにすでになりつつあることは、別として。

んで、0.4.0まで、xFrameworkPX上で動くことを前提にサンプルとか作ってたんですが、GitHubの容量くうので、ライブラリ関連は一切削除しました。
README.mdownに、サンプルの前提ディレクトリ構成記載しておきました。

それぞれのライブラリ向けのOmega Trickのファイルは次の通りです。

  • omegatrick-all.js : Omega Trick for Ext JS
  • omegatrick-core-all.js : Omega Trick for Ext Core
  • omegatrick-touch-all.js : Omega Trick for Sencha Touch

はい、ファイル名も大文字から、全部小文字に変更しました。
Ext JSにあわせただけなんですけどね。

それぞれの、Omega TrickはOmega Trick Coreという共通部分に、それぞれのライブラリ向けに拡張されてビルドされる仕組みになっています。
ビルドは、前にも書きましたが、JS Builder2が日本語だめなので、Google Closure Compilerを利用してシェルでビルドしています。

メソッドの補填

Ext.emptyFnの補填

Ext Coreには、Ext JSや、Sencha Touchで実装されているExt.emptyFnが実装されていません。
ただの空関数ですが、Omega Trick for Ext Coreを読み込めば、利用できるようになります。

Function.prototype.createCallbackの補填

Sencha Touchには、createCallbackが関数オブジェクトに実装されていません。
Omega Trick for Sencha Touchを読み込めば利用できるようになります。

Function.prototype.createSequenceの補填

Ext Core/Sencha TouchはcreateSequenseが実装されていません。
Omega Trick for Ext Coreまたは、Omega Trick for Sencha Touchを読み込めば利用できるようになります。

Extオブジェクトの拡張

Omega Trick(全てのエディション)を読み込むと、Ext オブジェクトが拡張されます。

isOmegaTrick

Omega Trickを読み込むとExt.isOmegaTrickがtrueになります。

isExtJS

Omega Trickを読み込むと、Ext JS利用時、Ext.isExtJSがtrueになります。

isExtCore

Omega Trickを読み込むと、Ext Core利用時、Ext.isExtJSがtrueになります。

isSenchaTouch

Omega Trickを読み込むと、Sencha Touch利用時、Ext.isSenchaTouchがtrueになります。

Trickオブジェクト

Omega Trickのクラスなどは、グローバルスコープに生成されるTrickオブジェクトに実装されます。
正確には、Trickは、Ext.trickのショートハンドです。

バージョン情報

Trick.versionを参照することで、Omega Trickのバージョンを参照できます。
Ext JS同様、Trick.versionDetailオブジェクトには、メジャー、マイナー、パッチのバージョンを個別に取得することできます。

メジャーバージョン

Trick.versionDetail.major

マイナーバージョン

Trick.versionDetail.minor

パッチバージョン

Trick.versionDetail.patch

アプリケーションオブジェクト

Omega Trick(全てのエディション)では、Applicationというオブジェクトがグローバルスコープに生成されます。
Sencha Touchなど、アプリケーションエントリーポイントの記述が異なる部分を吸収するとともに、アプリケーション状態遷移などを管理します。

アプリケーションの開始は、Application.setupメソッドにオブジェクトリテラルを設定します。
内部的に、それぞれのExtライブラリを判定して、適切なエントリーポイントを作成します。

今日(2010/08/09)現在のOmega Trickは、まだ移植中なので、まだまだシンプルな状態ですが、今後0.4.0で実装されていたものや、テスティングフレームワークの対応(yui)、TrickPanelなどを移植していきますので、興味のある人は覗いてやってください。

ってことで、結構まじめにかいた。
では(手

【解説&考察】Omega Trick

One thought on “【解説&考察】Omega Trick

Comments are closed.