Hatena::Groupmoz-addon

Ci.nsIZIGOROu

2007-10-17うーむ

WSFのテンプレ (1)

| 21:41 |  WSFのテンプレ (1) - Ci.nsIZIGOROu を含むブックマーク はてなブックマーク -  WSFのテンプレ (1) - Ci.nsIZIGOROu

ソース

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<package xmlns="http://schemas.microsoft.com/WindowsScriptHost">
  <job id="usage">
    <runtime>
      <named 
          name="arg1"
          helpstring="名前付きの1番目の引数です"
          type="string"
          required="true"
          />
      <named 
          name="arg2"
          helpstring="名前付きの2番目の引数です"
          type="string"
          required="false"
          />
      <description>
        <![CDATA[
ここのテキストは<runtime>要素の子要素に<usage>要素があるので、完全に無視されます。
        ]]>
      </description>
      <example>
        <![CDATA[
cscript //NoLogo //Job:usage foo.wsf /?
        ]]>
      </example>
      <usage>
        <![CDATA[
<usage>要素を使うと<example>, <description>などのテキストが全て無視されて<usage>要素で記載された内容に置き換わります。
        ]]>
      </usage>
    </runtime>
    <script type="text/javascript">
      <![CDATA[
               WScript.Echo("This is usage usage.");
      ]]>
    </script>
  </job>
  <job id="desc">
    <runtime>
      <description><![CDATA[バージョン付きは表示出来るか。]]></description>
      <example><![CDATA[ cscript //NoLogo //Job:desc foo.wsf /? ]]></example>
      <named 
          name="arg1"
          helpstring="名前付きの1番目の引数です"
          type="string"
          required="true"
          />
      <named 
          name="arg2"
          helpstring="名前付きの2番目の引数です"
          type="string"
          required="false"
          />
    </runtime>
    <script type="text/javascript">
      <![CDATA[
               WScript.Echo("This is debug usage.");
      ]]>
    </script>
  </job>
</package>

解説

今からid:nishiohirokazuとWiiスポーツの練習をするので後で書く。

MugMug2007/10/21 00:23すみません、返信が遅れました。(最近ブログ更新サボっていて、前向きなコメントを頂くとは想定外でした…)
私の場合は、ECMAScript(JavaScript,JScript)のコードをライブラリ化してまとめてインクルードでき、かつ多段(プロトタイプ)継承とプライベートメンバ・メソッドな「クラス(ユーザー定義オブジェクト)」を作る。
また、ライブラリ化の方針としては、ECMAScript準拠の部分と環境依存部分を別"クラス"や別"パッケージ"または"サブクラス"に分けて、なるだけ様々な環境で動作できるようにしています。
WSHでもそれらは動くのですが、せっかくスクリプト言語なのでCUIの対話形式での実行環境を作ってみましたのです。
(似てるのかな…?)スミマセン今はとりあえず返信させて頂こうかと思いましたので、後々内容を読ませていただきますね。

ZIGOROuZIGOROu2007/10/21 05:17おお、コメントありがとうございます。

> ライブラリ化してまとめてインクルードでき

この辺りは僕はScriptControlでやろうと思っています。
ただScriptControlはまだ挙動がいまいちわかってない部分があるんですよねぇ。

> かつ多段(プロトタイプ)継承

これはちょっとこの言葉だけだと想像出来ないかも。。。

僕も対話形式のConsoleは作ってるんですけど、まだライブラリ化の方針まで固まってません。ScriptXは使おうと思ってますけど。

MugMug2007/10/22 21:40いろいろとActiveXとか使ってますねー。いったいどこで仕様とか調べるのでしょう…??
後々参考にさせていただくかも知れません。

>> かつ多段(プロトタイプ)継承
JAVAなんかはクラスベースの継承だけれど、ECMAScriptはプロトタイプベースの継承ですよね。ただ、関数を使ったユーザー定義オブジェクトの場合、継承のシステムはユーザーが用意しなければならないはずです。
私の場合は、クラスライクな継承を何段も(サブクラスのサブクラスのサブクラスの…)できるようにしたのでこのように書かせていただきました。ただし、やはり多重継承はできませんでした。その代わり、"クラス"に1つ(static)なプロパティも継承させることにしました。

こっそり、こんなことやってます。

ZIGOROuZIGOROu2007/10/23 22:00> いろいろとActiveXとか使ってますねー。いったいどこで仕様とか調べるのでしょう…??

どこだろ、、、OleViewとかですかね?w
http://del.icio.us/zigorou でその手のブクマが流れてると思います。

で、継承云々の話ですけど、そもそも継承を積極的に使うべきかって辺りでJavaScriptのprototypeベースはそこまで要らない気がするんですよねぇ。

基本は普通にprototypeにベースとなる"オブジェクト"を突っ込んであげるだけで事足りると僕は考えていて、それ以上に拡張したいならmixinすればいいと考えてます。

型チェックってよりメソッド名で実装してるかしてないかみたいな。

takuya_1sttakuya_1st2007/10/29 12:00私のコードで使えるものがあればぜひ

ZIGOROuZIGOROu2007/10/31 00:58> id:takuya_1stさん
そう仰って頂けるのは恐縮です><