目次
hello, world
ブラウザに文字列を表示するだけのプログラムを作ります。
CGIモジュールを使う簡単な例となります。
準備
- ダウンロードページから、最新のファイルをダウンロードします。
- tarコマンド等で展開します。
- 付属の簡易Webサーバーを起動します。
tar xvfz alone-*.tgz cd alone-* ruby lib/al_server.rb
これで 3000番ポート(v3.8以降)もしくは10080番ポート(v3.7以前)でウェブサーバーが起動しています。ブラウザでアクセスすると、サンプル一覧が表示されます。
アプリの作成
サンプルに ハローワールドがありますので、これを書き換えて自分のアプリケーションにしてみます。
まず、既存のサンプルをコピーします。
リスト表示の時ややこしいので、READMEファイルは削除しておいてください。
cd controllers cp -r 00_hello my_hello cd my_hello rm README
使われるファイルは、次の2つです。
main.rb コントローラメインファイル
index.rhtml 表示用HTMLのテンプレート
- main.rb
require 'al_template' class HelloController < AlController def action_index() @my_message = "Hello world." AlTemplate.run( 'index.rhtml' ) end end
- index.rhtml
<%= header_section %> <title>Test</title> <%= body_section %> <p><%=h @my_message %></p> <%= footer_section %>
エディターを使って、コントローラを書き換えます。
- main.rb
@my_message = "Hello another world."
次のURLで実行確認します。
http://localhost:10080/index.rb?ctrl=my_hello
解説
このプログラムでは、Aloneのコントローラとテンプレートの2種類の機能を使っています。
プログラムは、ウェブブラウザからのアクセス(リクエスト)をトリガーに開始されます。 ブラウザのURLで指定されたパラメータをもとに、どのプログラムのどのメソッドを動作させるべきかがAlone側で決定され、実行されます。 この場合は、my_hello ディレクトリに置かれた main.rb の、action_index メソッドが呼ばれます。これらAloneのルーティングに関する詳細は、「AlController コントローラ」の項を参照してください。
呼ばれた action_index メソッドでは、変数 @my_message へ、"Hello another world." 文字列を代入します。 そして、テンプレートマネージャを呼び出して、htmlを生成しています。
テンプレートマネージャでは、引数で与えられたテンプレートファイル、および @で始まるインスタンス変数の内容などから、ブラウザに返すhtmlの完全なセットを生成します。
生成されたhtmlはブラウザに返され、ブラウザがそれを解釈して画面に表示します。
テンプレートに関する詳細は、「AlTemplate テンプレート」の項を参照してください。