Arc チャレンジがらみで Seaside をいじる 2


こちらもほぼ Lukas Renggli: We take the Arc Challenge の丸写し。


Said を WAComponent ではなく WATask のサブクラスとして作成し、#renderContentOn: ではなく #go を次のように再定義。ClickHere はそのまま流用。

Said >> go
    | foo |
    foo := self request: ''.
    self call: ClickHere new.
    self inform: 'you said: ', foo


入力フォームの生成や結果の体裁をいちいち記述することにこだわらなくてよいなら、こちらのほうが WAComponent を直に継承する実装よりシンプル。さらに、click here は別にリンクでなくとも、ページを間に挟みさえすればよい…という解釈でよいなら ClickHere すら不要で self infrom: 'click here'. で済ませることができて最短解。

こだわる必要があるなら、ClickHere 同様に、各々のコンポーネントを作成し #call: すればよいでしょう(もちろんそのぶんステップ数は増えて Arc に水をあけられてしまうわけですが…)。