[SML 7722] Re: Smalltalk勉強会@京都 課題 「CSV to HTML」できました

濱崎治 osamu.hamasaki @ gmail.com
2009年 11月 21日 (土) 11:44:12 JST


濱崎です。

前回ポストしたプログラムから、さらに変更を加えました。

前回ポストしたプログラムを仮想イメージにFileInした状態で、
添付ファイル"Translators-hamasaki-ver2.st"をFile Browser上で
選択して、File Browserのメニュー File -> Compare with Systm を
実行すると、差分を調べることが出来ます。(残念ながら削除した
クラスやメソッドは分かりませんが。)

File In の際は、前回ポストしたプログラムのパッケージをSysmte
Browserのメニュー Packege -> Remove を実行してから File In
してください。

主な変更は以下のとおりです。
・PrimeMinisterのaccessing-for-HTMLTableカテゴリのメソッドを整理
  結局、在位日数と画像へのハイパーリンクは、いわゆる導出
  属性である、またHTMLTableへ変換する時にどの属性を使う
  かは、メッセージセレクタの配列を与えるようにしたので、
  わざわざこのカテゴリのメッセージを用意する必要がない。

・クラスHTMLHyperLinkToImageの追加
  クラスPrimeMinisterの中に画像イメージへのハイパーリンクを
  生成するコードが残っていたので、HTMLObjectのサブクラスと
  して本クラスを追加し、ハイパーリンクを生成するコードを
  こちらに移動。これに影響を受けてHTMLTableItemも若干変更。
  (HTMLPlaneTextなんていうクラスを作った方がいいのかも、と
  思っています。)

・クラスHTMLCssStyleの追加
  CSS Styleの定義を保持する役割を持つクラスとして、本クラスを
  追加。
  このクラスを使ってHTMLDocumentの#writeHeaderOn:メソッドを
  整理すべく、HTMLObjectと各サブクラスも変更。
  現状プロパティ値を文字列で保持する実装で稚拙なものですが、
  スタートラインとしてはまずまず、と思っています。

  ただ、これまでcomplete.htmlとの差分は鳩山首相の在位日数とタイム
  スタンプだけだったのですが、スタイル定義中のプロパティ設定の
  並びに規則正しくない部分があったので、3箇所ほどHTMLコードが
  変わってしまいました。残念。。。

・いくつか名前が適切でなさそうそうだったのを変更したり、Formatterを
 かけたり
  例えば、HTMLの表の行をlineとしていましたが、HTMLの世界では
  rowと呼ぶようなので変更した、など。

・HTMLTableのインスタンス変数primeMinisterTableを削除
  リファクタリング作業の名残です。
  不要になったのを消し忘れていました。

次の勉強会までに、もう少し変更を加えられるかなあ、と思っています。

以上です。

2009年11月15日21:03 濱崎治 <osamu.hamasaki @ gmail.com>:
> 濱崎です。
>
> 私もようやく皆さんに見て頂けるレベルのコードになったので、
> プログラムをポストします。SUnitのテストケース付きです。

-- 

Osamu Hamasaki
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: Translators-hamasaki-ver2.st.zip
型:         application/zip
サイズ:     10203 バイト
説明:       無し
URL:        http://www.smalltalk.jp/pipermail/sml/attachments/20091121/fccf3e0d/Translators-hamasaki-ver2.st.zip


SML メーリングリストの案内