[SIXX] SIXX 0.3 preview

そろそろ出ますよ。待ちきれない人はSqueakSourceJからダウンロードしてください。

主な特徴として

  • #sixxNonReferencableInstVarNames フックの追加
    • 参照形式を使わずに常にそのまま書かれるインスタンス変数を定義できます。これはコンパクトなリテラルで表現できるオブジェクトなどをいちいち参照で書いているとSIXXのテキストファイルとしてのリーダビリティが落ちるという意見を反映したものです。
  • "Formatter"のサポート
    • Formatterとは、サブクラスを定義せずに特定クラスのSIXXフォーマットを動的にカスタマイズする仕組みです。例えばArrayやBagのイン スタンスなどで、場合によっては非常にsparseだったり冗長なオブジェクトが要素に含まれているときに、専用のサブクラスを定義しなくとも、インスタ ンスの状況に応じたフォーマットでオブジェクトを書き出すことができるというものです。
  • ShapeChangerのリファクタリング
    • もともとクラス定義の変更に柔軟に対応するための仕組みですが、いままではSixxShapeChangeReadStreamという専用の ReadStreamを使う必要がありました。今回からは、もっと簡単に#readSixxFrom:の前にコンテキストにShapeChangerを登 録すれば良いだけとなりました。(従来のやり方もサポートしています)


shapeChangers := {#SixxMockFixedNewFailedClass->SixxMockFixedAlternativeClass} as: Dictionary.
SixxContext applyShapeChangers: shapeChangers while: [
  object := Object readSixxFrom: oldSixx.
].

などとなります。Formatterもほぼ同様の使い勝手です。

11月はじめに正式リリースの予定です。

記事を見てコメントする | 友だちに紹介する

コメントを残す