Powered by SmartDoc

コード(.rb)

Rubyソースファイルです。クラス名はコンポーネント名と同じ名前にし、必ずCKComponentクラスを継承します。また、インスタンス変数をバインディングするには、アクセサを定義しておきます。

class MainPage < CKComponent
  def sayHello
    "Hello World!"
  end
end

コード内で 初期化を行う場合、通常のinitialize()ではなくinit()メソッドを使用します。init()は引数のいらない初期化用メソッドです。initialize()をオーバーライドしても初期化はできますが、引数が多いこととsuper()をすぐに呼ぶ必要があるなど、多少面倒になります。

バインディングの流れ

CGIKitは実行時にテンプレート内のエレメントをコードと結びつけ、実行結果をHTMLに変換して表示します。コンポーネントは以下の順序でHTMLを出力します。

<番号リスト-1->テンプレートを読み込む

  1. CGIKIT要素を見つけたら、バインディングから該当する定義を取得する
  2. 定義されたエレメントをコードとバインディングする
  3. エレメントをHTMLに変換し、出力する

アクセサ

エレメントにバインディングしたインスタンス変数のアクセサメソッドを定義する必要はありません。CGIKitは定義されていればアクセサを使って操作しますが、そうでなければインスタンス変数を直接操作します。

フォームデータ

フォームのテキストフィールドやボタンにバインディングしたインスタンス変数には、自動的にフォームデータが代入されます。