Mayちゃんの進捗
一旦、Ruby側の実装を置いておいて、管理画面の実装をすすめているところ。
CMSの管理画面なんてはじめて書くからドキドキ。ちょっとアイコンなんか使ってみたりして。
期待される変換結果であるHTML + CSSを実装し終わり、パラメータとして渡すXML文書を書いてXSLTも書く、と。 Komodoで補完してくれるし、大きなものでもないのでスキーマをRELAX NGで書いてみた。
XSLTも大したことをするわけではなく、パラメータとなるXML文書に自分がどんなアクションのパラメータなのかを示す属性を持たせて、それの値で振り分けている。
何を思ったか自分がMayで使う予定の独自語彙と同じ名前空間を使っていたけど、よく考えたら他の語彙(あるいは組み合わせ)を使うかもしれないし、それを可能にさせるためにXSLTを採用しているんだから、パラメータ文書の語彙は切り離すべきだよ俺。
あとRubyの実装をすすめている内にURIマッピングがプラグイン形式にできることに気付いた。
action = { "entry" => /pattern/, "year" => /pattern/, "month" => /pattern/, ... }
こんな感じで設定ファイルを書いて、URIルーティングするクラスがaction.values
をイテレータで回してリクエストURIにマッチしたpattern
を持つキーを返す。
URIルーティングするクラスは返されたキーをもとに__send__
で対応するメソッドへ実行を移譲する。こんな感じ。
ほんとは「自分さえ使えればいいんだ」ってことで、URIマッピングは深く考えていなかったんだけど、タナボタ。
来週からは再びRubyでの実装に入りたい。