Mayちゃんの進捗

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での実装に入りたい。