====== hello, world ====== ブラウザに文字列を表示するだけのプログラムを作ります。\\ CGIモジュールを使う簡単な例となります。 ===== 準備 ===== * [[http://www.ruby-alone.org/download/|ダウンロードページ]]から、最新のファイルをダウンロードします。 * tarコマンド等で展開します。 * 付属の簡易Webサーバーを起動します。 tar xvfz alone-*.tgz cd alone-* ruby lib/al_server.rb これで 3000番ポート(v3.8以降)もしくは10080番ポート(v3.7以前)でウェブサーバーが起動しています。ブラウザでアクセスすると、サンプル一覧が表示されます。 http://localhost:3000 ===== アプリの作成 ===== サンプルに ハローワールドがありますので、これを書き換えて自分のアプリケーションにしてみます。 まず、既存のサンプルをコピーします。\\ リスト表示の時ややこしいので、READMEファイルは削除しておいてください。 cd controllers cp -r 00_hello my_hello cd my_hello rm README 使われるファイルは、次の2つです。 main.rb  コントローラメインファイル\\ index.rhtml  表示用HTMLのテンプレート\\ require 'al_template' class HelloController < AlController def action_index() @my_message = "Hello world." AlTemplate.run( 'index.rhtml' ) end end <%= header_section %> Test <%= body_section %>

<%=h @my_message %>

<%= footer_section %>
エディターを使って、コントローラを書き換えます。 @my_message = "Hello another world." 次のURLで実行確認します。 http://localhost:10080/index.rb?ctrl=my_hello {{:prog_cgi:hw_my_hello.png?nolink|}} ===== 解説 ===== このプログラムでは、Aloneのコントローラとテンプレートの2種類の機能を使っています。 プログラムは、ウェブブラウザからのアクセス(リクエスト)をトリガーに開始されます。 ブラウザのURLで指定されたパラメータをもとに、どのプログラムのどのメソッドを動作させるべきかがAlone側で決定され、実行されます。 この場合は、my_hello ディレクトリに置かれた main.rb の、action_index メソッドが呼ばれます。これらAloneのルーティングに関する詳細は、「[[alcgi:コントローラ|AlController コントローラ]]」の項を参照してください。 呼ばれた action_index メソッドでは、変数 @my_message へ、"Hello another world." 文字列を代入します。 そして、テンプレートマネージャを呼び出して、htmlを生成しています。 テンプレートマネージャでは、引数で与えられたテンプレートファイル、および @で始まるインスタンス変数の内容などから、ブラウザに返すhtmlの完全なセットを生成します。 生成されたhtmlはブラウザに返され、ブラウザがそれを解釈して画面に表示します。 テンプレートに関する詳細は、「[[altemplate:start|AlTemplate テンプレート]]」の項を参照してください。