[SML 7689] Smalltalk勉強会@京都 課題 「CSV to HTML」できました
hirowadenden
hirowadenden @ hera.eonet.ne.jp
2009年 10月 19日 (月) 19:21:38 JST
ハンドル名で失礼します、hirowadendenと申します。
#プログラムとクラスダイアグラム添付して投稿したのですが、40KBの制限に
引っかかってしまったので、このメールにはプログラムのみを添付して再送いた
します。後ほどダイアグラムを添付したメールを送らせていただきます。
Smalltalk勉強会@京都での課題プログラムが一応できましたので、クラスダイ
アグラムとともにプログラムを添付させていただきました。ご覧いただいて、ご
指摘などいただけましたら幸いです。私としては、Tableクラスを工夫したつも
りなんですがどうでしょうか?
クラスダイアグラムはJunのToolsを使って描きましたが、UMLはあまりよく知ら
ないので書き方が間違っているかもしれません。
なお、パッケージ名はTranslatorsになっていますのでFile inされるときには上
書きにご注意ください。
Tableクラスの概略は以下のとおりです:
・Tableクラスのtranslateにあるように以下のようにすると、CSVファイから
index.htmlを生成します。
| aTable |
aTable := PrimeMinisters.Reader table.
PrimeMinisters.Writer table: aTable.
^aTable
・TableクラスにCSVファイルの1行目の項目名一覧をからTableのインスタンスを
生成しています。
Table titles: 項目名一覧の配列
このとき、項目名に対応させてTableDataのインスタンスを生成しますが、'画像
'と'在位期間'の項目に対してはそれぞれTableDataのサブクラスである
TableDataForImageLink,TableDataForPeriodのインスタンスを生成します。
・Tableのインスタンスに、CSVファイルの2行目以降のデータを追加します。
(aTable addDataRecord: 1行分のデータ配列) を各行について繰り返す
・TableのインスタンスにhtmlRecordsを送ると、HTMLの表本体に含まれるべき
HTML要素を行ごとにまとめて返します(<tr>タグは含まず)。
aTable htmlRecords
TableData(もしくは、サブクラスであるTableDataForImageLink,
TableDataForPeriod)のインスタンスが対応する項目名と項目の値をHTML要素に
変換しています。
以下の点はもう少し考えたいと思っています:
・TableとDownloader, Reader, Writerの関係がしっくりしない感じがしています。
・<img>タグのheightとwidthは固定値を設定してしまっています。(ブラウザ上
でサムネールが同じ大きさで表示されるようにしているのだと完成版の
index.htmlを見てかってに思い込んでしまい、プログラムの方をよく見ていませ
んでした。)
当方の作成環境は以下のとおりです:
Ubuntu 9.04(i386版)
VisualWorks7.6NC
Jun781
Jpl023
また、他の方も課題について作成されたプログラムや作成する際の考え方等を投
稿されるのを楽しみにしています。
-- hirowadenden
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: HirowadendenVersionOfPrimeMinisters.st
型: text/xml
サイズ: 27158 バイト
説明: 無し
URL: http://www.smalltalk.jp/pipermail/sml/attachments/20091019/8753517f/HirowadendenVersionOfPrimeMinisters-0001.xml
SML メーリングリストの案内