Post Type: textPost Date: 2011/11/26
そういやテンプレートでズルンっとHTMLとか書きだすPSGI/Plackなやつ一応できた。機能的には月の頭にはほとんどできてたけど、なんかコード酷かったから書き直してたりしてた。あと、sass対応とか。
ほとんど全部を機能別にMiddlewareにして、アプリ自体はPlack::BuilderでMiddlewareをenableするだけの感じになった。なんか見た感じスッキリしてるので嬉しい。あと、Middleware化するときに(ちゃんと)テスト書いた。
テンプレート(Text::Xslate)部分は、カレントディレクトリにvars.jsonってファイルがあれば勝手に読み込んでテンプレート内で変数として使えるようにした。最初はこういうのも全部テンプレートだけでやろうと思ってたんだけど、Xslate的にちょっと無理っぽかったのでこういう方法に変更した。
あとレンダリングされるHTMLのcharsetに従って、エンコード変換するようにした。とりあえず全体的にエンコードを統一しとけばOKな感じ(なんでもいい)。これで、「他のページとたいして変わらんけどこのページだけShift_JISでヨロ」みたいなことがあっても楽チン。
ファイル書き出し部分はちょっと手を加えてというかちゃんと気を利かせて、書き出し内容に変更がある場合のみ上書きするようにした。んでちゃんと、上書きしただとかスキップしただとかをprintするように。ここはy/nとか聞くようにしたほうがええかな。このファイル書き出し用のMiddleware、使い方間違ったらとんでもないことになりそうな感じがビンビンしてるし。
あと前は書き出し用パラメータ付けてリクエストしたら書き出しっていう風にしてたけど、plackupからじゃなく直接実行したら書き出しモードって風に変更した。