このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

Catyの変更や拡張

http://d.hatena.ne.jp/m-hiyama-memo/20110623/1308807276 以降で、以前のリポジトリの最後の時期; 2011年6月から8月くらい。上のほうが古くて、下がより新しい。

  1. osモジュール
  2. json:fix-on-selection (下に記述)
  3. json:fix-on-selection に、インライン・インクルード機能としての $embed
  4. pidファイル機能
  5. server status を server だけで参照可能。
  6. OSシグナル SIGTERM, SIGQUITに対応。Windowsでは不十分。
  7. キーボード割り込みをシグナルハンドラで対応するよう変更。Windowsでは不十分。
  8. isarray, isobjectフィルターを追加
  9. smarty3のfunctionを実装。
  10. その他 SmartyMinEx(smarty-mx)
  11. モジュールにアノテーションを付けられる。
  12. chcker.casm と checker:check-files、 まだ不十分。



json:fix-on-selection は次の形のセレクションを処理する。


type selection = {
/** 選択の方式、必須とする */
"$selection" : ("array"|"object"),

/** 現在の値の番号または名前 */
"$current" : (integer(minimum=0) | string),

/** 値の候補 */
"$values" : [any*] | {*:any?}
}

古いmainline issue #600 に、checkerに関してタグオンリーの記述がある。


type WebResource = {

// meta.jsonファイルは必須
"meta.json" : true,

// *.txtファイルはあってのなくてもよい
"*.txt" : true?,

// html/ サブディレクトリは必須
"html" : {
/* index.htmlは必須、他にHTMLファイルを好きなだけ */

"index.html" : true,
"*.html" : true?
},

// imagesサブディレクトリはあってもなくてもよい
"images" : {
/* このディレクトリ内に存在していいファイルは *.jpg, *.png, *.gif */

"*.jpg" : true?,
"*.png" : true?,
"*.gif" : true?,

}?,
};

上のスキーマは次のインスタンスで表現可能だ。


{
// meta.jsonファイルは必須
"meta.json" : @required 1,

// *.txtファイルはあってのなくてもよい
"*.txt" : @optional 1,

// html/ サブディレクトリは必須
"html" : @required {
/* index.htmlは必須、他にHTMLファイルを好きなだけ */

"index.html" : @required 1,
"*.html" : @optional 1,
},

// imagesサブディレクトリはあってもなくてもよい
"images" : @optional {
/* このディレクトリ内に存在していいファイルは *.jpg, *.png, *.gif */

"*.jpg" : @optional 1,
"*.png" : @optional 1,
"*.gif" : @optional 1,

},
}

ダミーの 1 がうるさい。タグオンリーデータならすっきり。


{
// meta.jsonファイルは必須
"meta.json" : @required,

// *.txtファイルはあってのなくてもよい
"*.txt" : @optional,

// html/ サブディレクトリは必須
"html" : @required {
/* index.htmlは必須、他にHTMLファイルを好きなだけ */

"index.html" : @required,
"*.html" : @optional
},

// imagesサブディレクトリはあってもなくてもよい
"images" : @optional {
/* このディレクトリ内に存在していいファイルは *.jpg, *.png, *.gif */

"*.jpg" : @optional,
"*.png" : @optional,
"*.gif" : @optional,

},
}

https://bitbucket.org/project_caty/dev/issue/373/ にも関連する記述がある。