2005-11-22

λ [Ruby] CGIKit

Ruby業界はRails全盛だが、都合により CGIKit 1.x での開発作業中。

表面上のURLは1つでPOSTし続けるので、PostBackするASP.NETに近いようでもあるが、 Repetitionの中の入力フィールドの扱いは自力で処理するしかなさげ。ViewStateもないし。 ページ遷移間でオブジェクトをさくっと渡せるのは気持ちいい。

ただ、ページ遷移を伴った場合、遷移後の変数バインドをどうすればいいのか悩んだ。 ページ遷移後の init が呼ばれるタイミングではページ遷移前に設定した変数バインドがされていない雰囲気、 かつ「ある要素を表示するイベント」の時は変数が見えるが、他の要素にどうちょっかい出す」のかが謎。

「ある要素を表示するイベントで設定されたメンバ変数は、他の要素を表示するイベントで見えるのか」=「どっちが先に呼ばれるの?」 という資料を探そうかどうか悩んで、結局そこまで内部調査はしないことにした。

結果として以下のような俺ルールで作成 ・複雑な処理はページ遷移前のコンポーネントでやる ・ページ遷移後は、設定されたメンバ変数を表示するだけ。 「ボタンに対するイベント」という意味ならこれだけでもいいのだが、 「表示におけるルール」がある場合にイベント側が表示ルールを知っていないといけないのがイマイチな感じ。 その辺を司る中間クラスがあるといいのかなあ。

そもそもCGIKitが HTML+Ruby+間をとりもつ謎フォーマットのckdファイル という3ファイル構成なのが冗長。 ckdファイルの中身はHTMLタグの属性として実装できなかったんだろうか…

とはいえさすがに素のerubyよりは見通しがいい気はする。

[]