<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Web　酒　肴</title>
    <link>http://blog.garden-place.jp/oborobeer/</link>
    <description>Flex, ActionScript, CMS, Ruby on Rails, Java, NetBeansなどの技術情報その他</description>
    <language>ja</language>
    <generator>Nucleus CMS v3.31SP1</generator>
    <copyright>&#169;</copyright>
    <category>Weblog</category>
    <docs>http://backend.userland.com/rss</docs>
    <image>
      <url>http://blog.garden-place.jp/nucleus/nucleus2.gif</url>
      <title>Web　酒　肴</title>
      <link>http://blog.garden-place.jp/oborobeer/</link>
    </image>
    <item>
 <title>[勝手に日本語訳] Getting Started With Ruby and Rails</title>
 <link>http://blog.garden-place.jp/oborobeer/item_74.html</link>
<description><![CDATA[<p>以下の記事の日本語訳が無いようなので、勝手に翻訳してみた。<br />
それが許されるのかどうかはこれから問い合わせて、問題があるなら削除します。 日本語訳もだいぶ適当だし。伝わりやすい意味を重視したつもりですので、正確な訳にはなっていない場所も多々あると思います。意味としてもおかしい部分があれば、ぜひご指摘ください。</p>

<p>元記事は以下。</p>

<h1><a href="http://www.netbeans.org/kb/60/ruby/getting-started.html">Getting Started With Ruby and Rails</a></h1>

<p>このチュートリアルはあなたが即座にNetBeans IDEでRubyやRuby on Railsのアプリケーションを開発できるようにしてくれるでしょう。このチュートリアルはアプリケーション開発におけるいくつかのよくあるケースにおいて、あなたがどのようにIDEのRubyサポートを使用するかを教えてくれます。</p>

<p>このチュートリアルは順番どおり進める必要がありません。必要なところだけを素早く拾い読みし、時間があれば各セクションを見直すという読み方で構いません。順番どおり進める形式のチュートリアルがよければ、まず<a href="http://www.netbeans.org/kb/60/ruby/rapid-ruby-weblog.html">RubyでBlogを10分で作る</a>を参照するのがよいでしょう。</p>

<p>目次</p>

<ul>
<li><a href="#make-ruby-proj">Rubyプロジェクトを作成する</a></li>
<li><a href="#use-ruby-file">Rubyファイルを扱う</a></li>
<li><a href="#make-rails-proj">Ruby on Railsプロジェクトを作成する</a></li>
<li><a href="#use-rails-file">Ruby on Railsファイルを扱う</a></li>
<li><a href="#use-ruby-console">JRuby Interactive Ruby (IRB) コンソールを使う</a></li>
</ul>
<h2>チュートリアルの必要要件</h2>

<p>このチュートリアルは以下のシステム要件を前提としています。</p>

<ul>
<li>Ruby on Railsサポート対象のデータベースサーバ</li>
<li><a href="http://download.netbeans.org/netbeans/6.0/final/">NetBeans IDE 6.0 と Rubyサポート</a>（英語）</li>
</ul>

<p>NetBeans Rubyサポートのインストールと設定、またNetBeans Ruby on Railsプロジェクトとデータベースサーバとの連携に関しては<a href="http://www.netbeans.org/kb/60/ruby/setting-up.html">Installing and Configuring Ruby Support</a>（英語）を参照してください。</p>

<h2 id="make-ruby-proj">Rubyプロジェクトを作成する</h2>

<p>プロジェクトというのはあなたが作成するアプリケーションの作業環境のことです。新しくRubyプロジェクトを作成するとき、既存のファイルから作成する方法と雛形にしたがって新しいフォルダセットを作成する方法のどちらかを選択できます。</p>

<p><em>補足</em>: あなたがNetBeansの管理外にある既存のRubyもしくはJRubyプロジェクトを開くとき、NetBeansの管理情報を含むnbprojectフォルダを作成します。</p>

<p>複数のプロジェクトを同時にIDE上に開くことができます。２つ以上のプロジェクトが存在するときは、主プロジェクトを一つ決定しなくてはなりません。主プロジェクトは「主プロジェクトを実行」ボタンを押下した際にIDEが実行するプロジェクトです。主プロジェクトを変更するにはプロジェクトウィンドウ内で該当プロジェクトを右クリックし、「主プロジェクトとして設定」を選択してください。</p>

<p>新規にRubyプロジェクトを作成するとき、IDEは通常main.rbを作成し、このファイルをメインスクリプトとして設定します。「主プロジェクトを実行」ボタン(<a href="http://blog.garden-place.jp/media/2/20080208-runbutton.png">主プロジェクトを実行</a>)をクリックしたとき、IDEは全てのファイルの変更を記録しメインスクリプトを実行します。別のスクリプトが実行されるように変更するにはプロジェクトウィンドウ上で該当プロジェクトを右クリックしポップアップメニューから「プロパティー」を選択、「実行」カテゴリを選択し「主スクリプト」のフィールドにメインスクリプトとして実行するファイル名を入力してください。</p>

<p><em>補足</em>: main.rbファイルはRubyプロジェクト用に作成されます。Ruby on Railsプロジェクトを作成したときは、<a href="#make-rails-proj">Ruby on Railsプロジェクトを作成する</a> セクションで説明していますが、IDEはmain.rbファイルを作成しません。</p>

<p><em>試してみよう</em></p>

<p>以下はRubyプロジェクト作成の手順です</p>

<ol>
<li>もしもまだ準備ができていなければ、以下のリストから適切な手順を行いIDEを起動してください。

<ul>
<li><em>Windows, Solaris, Linux</em>の場合  デスクトップのNetBeansアイコンをダブルクリック</li>
<li><em>Mac</em>の場合 インストールフォルダ内のNetBeansアイコンをダブルクリック</li>
</ul></li>
<li>プロジェクトウィンドウの適当な領域を右クリックし、ポップアップメニューから「新規プロジェクト」を選択します。</li>
<li>新規プロジェクト作成ウィザードのカテゴリで<em>Ruby</em>を選択、プロジェクトで<em>Ruby アプリケーション</em>を選択後、「次へ」をクリック。もしもこれがあなたが作成、もしくは開く初めてのRubyプロジェクトならば、Rubyインタープリタを選択するダイアログが表示されるでしょう。選択肢の中から希望するインタープリタを選択し、「OK」をクリックします。</li>
<li>例えば<code>simple_ruby_application</code>のように適当な<em>プロジェクト名</em>を入力して「完了」をクリックします。<br />
IDEはmain.rbファイルをエディタに表示します。画面に"Hello World"を表示するソースコードを確認してください。</li>
<li>プロジェクトウィンドウはプロジェクトに含まれるファイル群を論理的に分類して表示します。「ファイル」タブをクリックし、物理的な構成を表示すればプロジェクトウィンドウは背後に隠れます。Rubyプロジェクトの場合はどちらの表示も非常に似ています。</li>
<li>「主プロジェクトを実行」ボタン(<a href="http://blog.garden-place.jp/media/2/20080208-runbutton.png">主プロジェクトを実行</a>)をクリックし、アプリケーションを実行してください。IDEは下部にウィンドウを表示し、そこに以下のように結果を出力します。<br />
<br />
<a href="http://blog.garden-place.jp/media/2/20080208-rubyoutput.png">rubyoutput</a></li>
</ol>

<h2 id="use-ruby-file">Rubyファイルを扱う</h2>

<p>Rubyプロジェクトのファイル群は、どれもテキストエディタで編集するのと同じように扱えます。プロジェクトウィンドウやファイルウィンドウ内ではファイルをダブルクリックで開くことができます。<em>Alt+Shift+O</em>（Macの場合は<em>Ctrl+Shift+O</em>）でファイル名から検索することもできます。</p>

<p>IDEのエディタはあなたのプログラミング作業を助ける多くの特長があります。このセクションではいくつかの基本的な編集機能について学習します。編集機能の機能一覧は<a href="http://wiki.netbeans.org/wiki/view/RubyEditing">Ruby Editing</a> wiki（英語） で見つけられるでしょう。</p>

<p><em>試してみよう</em></p>

<p>以下の手順に従って、商品一覧を表示する単純なRubyプロジェクトを作成しましょう。まず、個々の商品をあらわすクラスを作成します。次に商品一覧をあらわすクラスと、商品データを保持するデータファイルを作成します。最後にmain.rbを編集し一覧を表示します。ソースコードを書いていく作業の中で各編集機能も紹介します。</p>

<h3>商品クラスの作成</h3>

<ol>
<li>Rubyプロジェクトを作成するか、先ほどのセクションで作成したプロジェクトを使用してください。</li>
<li>プロジェクトウィンドウで「ソースファイル」を右クリックし、ポップアップから「新規」 > 「Ruby クラス」を選択してクラスファイルを作成してください。クラスというテキストボックスでは<em>Item</em>と入力し「完了」ボタンをクリックします。IDEはitem.rbというファイルを作成しエディタで開きます。</li>
<li><p>item.rbの中身を全て以下の誤ったコードに置き換えてください。ここに修正作業を加えていきます。<br /></p>

<h4>サンプルコード１: Item クラス</h4>

<pre><code>class Item
def initialize(id, type, price)
end
def simple_method(id, type, price)
@id = id
@type = type
@price = price.to_f
end
def to_s
"Item #{@id} is a #{@type}: Price $#{@price}"
end
end
</code></pre></li>
<li>ソース内を右クリックしポップアップメニューから「整形」を選択肢、コードの再整形を行います。</li>
<li>以下のように、initializeメソッドの引数の下に灰色の波線が入っていることに気付きます。これらの波線は未使用の変数を表します。以降の２つの手順でこのエラーを直します。<br />
<br />
図２: 未使用変数<br />
<a href="http://blog.garden-place.jp/media/2/20080208-unusedvars.png">unusedvars</a><br />
<br /></li>
<li><code>simple_method</code>内の@typeの上にカーソルを持っていき、Alt+Shift+.（ピリオド）を押して行選択してください（Macの場合はCtrl+Shift+.）。このキーを何度か押せば以下の図のように一つずつ広いブロックを選択していきます。<br />
<br />
図３: 複数行選択<br />
<a href="http://blog.garden-place.jp/media/2/20080208-selectforcut.png">selectforcut</a><br />
<br /></li>
<li>選択状態のままソース内を右クリックし、ポップアップメニューより「カット」を選択してください</li>
<li>カーソルをコンストラクタ（initializeメソッド）の先頭に持っていき、Shift+Enterを押下すると現在行の下に新しい行が作成されます。その新規行にて右クリックしポップアップメニューから「ペースト」を選択し、貼り付けます。</li>
<li><code>simple_method</code>メソッドは以上の手順を実行するために必要なコードを書いていただけでした。不必要となったメソッドを削除するためにカーソルを<code>simple_methodの</code>end宣言部に持っていってください。<br />
IDEは対応するdef宣言部を黄色くハイライト表示しているのがわかります。</li>
<li>Alt+Shift+.（ピリオド）を押下し、メソッド全体を選択します（Macの場合はCtrl+Shift+.）。それからdeleteキーで削除できます。</li>
<li>カーソルを何もない行にもっていき、Ctrl+E（Macの場合はCmd+E）を押下すれば該当行が削除されます。</li>
<li>このステップと次の２つのステップではコード補完の使用法を説明します。クラスのブロックの先頭に新規行を追加し、カーソルをそこへ移動します。そして<em>attr_a</em>まで入力した後Ctrl+スペースを押下してください（もしCtrl+スペースが動作しなければCtrl+\を使用してください）。
IDEは以下のように考えうるコードの候補を表示します。<br />
<br />
図４: <em>attr_a</em>に対応するコード保管リスト<br />
<a href="http://blog.garden-place.jp/media/2/20080208-codecompletepopup.png">codecompletepopup</a><br />
<br /></li>
<li>「<em><code>attr_accesor</code> <code>:attr_names rw</code></em>」を選択し、エンターを押下します。IDEはコードを保管し<em>attr_names</em>を編集するために次図５のように選択状態にします。<br />
<br />
図５: 補完されたコード<br />
<a href="http://blog.garden-place.jp/media/2/20080208-codecomplete.png">codecomplete</a><br />
<br /></li>
<li><p>「id, :type, :price」と入力して宣言部を完成させてください。以下のようになりました。</p>

<pre><code>attr_accessor :id, :type, :price
</code></pre></li>
<li><p><em>attr_accessor</em>のそれぞれの引数（:id, :type, :price）を選択し、各変数が使用されている場所をIDEがハイライト表示するのを確認してください。<br />
完成したソースコードは以下のサンプルのようになるはずです。  <br /></p>

<h4>サンプルコード２: 整形されたItemクラス</h4>

<pre><code>class Item
  attr_accessor :id, :type, :price
  def initialize(id, type, price)
    @id = id
    @type = type
    @price = price.to_f
  end
  def to_s
    "Item #{@id} is a #{@type}: Price $#{@price}"
  end
end
</code></pre></li>
</ol>

<h3>ItemList クラスの作成</h3>

<ol>
<li>プロジェクトウィンドウにて「ソースファイル」を右クリックし、ポップアップメニューから「新規」→「Ruby クラス」を選択して新しいクラスファイルを作成してください。クラス名には<em>ItemsList</em>と入力し「完了」をクリックします。IDEが<em>items_list.rb</em>という名前で作成していることを確認してください。</li>
<li><p><code>item_list.rb</code>ファイルの内容を次のソースコードと全て置き換えてください。</p>

<h4>サンプルコード３: ItemList クラス</h4>

<pre><code>class ItemsList

  DATA_FILE="data.txt"
  attr_accessor :items

  def initialize
    @items = ItemsList.load_item_data
  end

  private

  def self.load_item_data
    items = []
    File.open(DATA_FILE) do |data_file|
      data_file.readlines.each do |line|
        items &lt;&lt; Item.new(*line.split("\s"))
      end
    end
    items
  end
end
</code></pre></li>
<li>クラス宣言の上に新規行を追加し、「<em>require '</em>（シングルクォート）」と入力します。<br />
以下の図６のようにIDEがシングルクォートを補完し、カーソルがシングルクォートの間に位置されることを確認してください。IDEはこれらのクォートやカッコなどの区切り文字を、コードブロックのend宣言などと同じように、自動的に補完したり削除したりします。<br />
<br />
図６: 引用符補完<br />
<a href="http://blog.garden-place.jp/media/2/20080208-quotecomplete.png">quotecomplete</a><br />
<br /></li>
<li>カーソルがシングルクォートの中にある状態で<em>it</em>と入力してCtrl+スペースを押下してください。<em>it</em>から始まるimport候補は次図７の通りitemのみです。Tabを押して選択を確定します。<br />
<br />
図７: require宣言のコード補完<br />
<a href="http://blog.garden-place.jp/media/2/20080208-requirecomplete.png">requirecomplete</a><br />
<br /></li>
</ol>

<h3>データファイルの作成</h3>

<ol>
<li>プロジェクトウィンドウ内の「ソースファイル」上で右クリックし、ポップアップメニューから「新規」>「その他」を選択してください。カテゴリで「その他」を選択し、ファイルの種類で「空のファイル」を選択し、「次へ」をクリックします。</li>
<li>ファイル名に<em>data.txt</em>と入力してください。</li>
<li>フォルダに<em>lib</em>が指定されていることを確認して「完了」をクリックしてください。
<em>補足</em>: テキストファイルはlibフォルダに作成されます。なぜならデフォルト設定ではIDEからプロジェクトを実行した際、作業ディレクトリはlibフォルダになるからです。</li>
<li><p>以下のテキストをdata.txtファイルに貼り付けてください。</p>

<h4>サンプルコード 4: 商品データ</h4>

<pre><code>BF15678 book 25.32
C29589 cd 18.95
F89028 beverage 2.00
BN98232 book 45.33
BF15890 book 15.98
</code></pre></li>
</ol>

<h3>メインスクリプトの作成とアプリケーションの実行</h3>

<ol>
<li><p>プロジェクトウィンドウでmain.rbをダブルクリックし、エディタウィンドウで開いてください。ファイルの中身を全て以下の商品リスト表示のソースコードに置き換えてください。</p>

<h4>サンプルコード５: main.rb</h4>

<pre><code>require 'items_list'

items_list = ItemsList.new
items_list.items.each do |item|
  line_item = item.to_s
  line_item.gsub!(/book/, 'fiction \0') if item.id =~ /\AB[FN]/
  line_item.gsub!(/fiction/, 'non-\0') if item.id =~ /\ABN/
  puts line_item
end
puts "\n"
</code></pre></li>
<li>今コピーしたコードは２つの正規表現オブジェクト（/<code>\</code>AB[FN]/ and /<code>\</code>ABN/）を含んでいます。カーソルをどちらかの正規表現オブジェクトの中に置き（下図参照）、Ctrl+スペースを押下してください。IDEは正規表現構文の一覧を表示します。サンプルコード４（訳注：原文は５だが間違いと思われる）のデータを見て、どの商品がそれぞれの正規表現にマッチするか考えてみましょう。<br />
<br />
図8: 正規表現コード補完<br />
<a href="http://blog.garden-place.jp/media/2/20080208-regularexcomplete.png">regularexcomplete</a><br />
<br /></li>
<li>プロジェクトを実行するにはメインツールバーの「主プロジェクトを実行」ボタンを押下する。IDEは全ての変更を保存し、main.rbスクリプトを実行する。アプリケーションからの出力は以下図９のように出力ウィンドウに表示される。<br />
<br />
図９: simple_ruby_application の出力<br />
<a href="http://blog.garden-place.jp/media/2/20080208-rubyappoutput.png">rubyappoutput</a><br />
<br /></li>
<li>ここで学習したことを練習するために、別のRubyプロジェクトを作成してください。タスクリストのエントリーを読み込んで表示するようにプログラミングしてみましょう。</li>
</ol>

<p><em>さらに詳しい情報</em></p>

<ul>
<li>Rubyを学ぶための人気書籍2冊は<a href="http://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0Ruby-%E7%AC%AC2%E7%89%88-%E8%A8%80%E8%AA%9E%E7%B7%A8-Dave-Thomas/dp/4274066428/ref=pd_bbs_3?ie=UTF8&amp;s=gateway&amp;qid=1202456908&amp;sr=8-3">プログラミングRuby</a>（訳注：原文は洋書「<a href="http://www.amazon.co.jp/Programming-Ruby-Pragmatic-Programmers-Guide/dp/0974514055/ref=pd_bbs_sr_1?ie=UTF8&amp;s=english-books&amp;qid=1202456908&amp;sr=8-1">Programming Ruby</a>」）と<a href="http://poignantguide.net/ruby/index.html">Why's (Poignant) Guide to Ruby</a>です。</li>
</ul>

<h2 id="make-rails-proj">Ruby on Railsプロジェクトを作成する</h2>

<p>IDEでRuby on Railsプロジェクトを作成するのはrailsのコマンドをターミナルウィンドウで使用するのと非常によく似ています。実際、プロジェクトを作成するときにIDEはrailsコマンドが作成するのと同じフォルダとファイルを作成します。</p>

<p>プロジェクトを作成するには、プロジェクトウィンドウを右クリックしポップアップメニューから「新規プロジェクト」を選択します。カテゴリで「Ruby」、プロジェクトで「Ruby on Rails アプリケーション」か「既存のソースを利用した Ruby on Rails アプリケーション」を選択してください。</p>

<p>IDE上で同時に複数のプロジェクトを開くことが可能です。主プロジェクトはNetBeansが主に扱うプロジェクトであり、太字で表示されます。主プロジェクトを変更するにはプロジェクトウィンドウでプロジェクトを右クリックし、「主プロジェクトとして設定」を選択してください。</p>

<p>以下の図１０にわかるとおり、新規プロジェクトウィザードの２画面目でプロジェクト名とプロジェクトの場所を指定します。ドロップダウンリストではサポートされているいくつかのデータベースサーバから選択します。IDEはdatabase.ymlファイルに書き込む設定内容を決定するために、選択されたデータベースサーバと「JDBCを利用してデータベースにアクセス」オプションを使用します。</p>

<p>図１０: 新規 Ruby on Rails プロジェクト作成ウィザード（２画面目）<br />
  <a href="http://blog.garden-place.jp/media/2/20080208-railsprojwizard2.png">railsprojwizard</a></p>

<p><em>試してみよう</em></p>

<p>以下の手順に従ってRuby on Railsプロジェクトを作成してください。</p>

<ol>
<li>プロジェクトウィンドウの何もない場所を右クリックして、ポップアップメニューから「新規プロジェクト」を選択してください。</li>
<li>新規プロジェクトウィザードにてカテゴリで「Ruby」、プロジェクトで「Ruby on Rails アプリケーション」を選択し「次へ」をクリックしてください。もしもこれがあなたが作成、もしくは開く初めてのRubyプロジェクトならば、Rubyインタープリタを選択するダイアログが表示されるでしょう。選択肢の中から希望するインタープリタを選択し、「OK」をクリックします。</li>
<li>例えば「<code>simple_rails_application</code>」というプロジェクト名にします。</li>
<li>次にアプリケーションが使用するデータベースサーバを指定します。もしRubyインタプリタにJRubyを使用するのであればMySQL, PostgresSQL, Oracle, HSQLDB, or Java DB（いわゆるDerby）の中から選択しなければなりません。IDEはdatabase.ymlファイルを生成するためにこの情報を使用します。<br />
<em>補足</em>: もしプロジェクトをこのチュートリアルのためだけに使用するのであれば、データベースに接続することはありませんのでデータベースの設定は初期値で構いません。</li>
<li>もしJRubyを使用し、MySQL以外のデータベースに接続するのでしたら「JDBCを利用してデータベースにアクセス」チェックボックスにチェックをいれなければなりません。もしもデータベースがMySQLであればJDBCチェックボックスはどちらでも構いません。このチェックボックスにチェックが入っているとき、IDEはenvironment.rbファイルに<em>ActiveRecord-JDBC gem</em>を使用する宣言を追加します。<br />
<em>補足</em>: JDBCコネクションを使用するにはあなたのデータベースサーバにあったJDBC 3.0クライアントドライバが入手してください。そしてそのJDBCドライバのコピーを（JRubyのインストール先）/libフォルダに設置してください。</li>
<li>「完了」をクリックします。</li>
<li>プロジェクトウィンドウでファイル構成の論理的なビューを確認してください。</li>
<li>プロジェクト（のルート）の上で右クリックしメニューのオプションを確認してください。</li>
<li>ファイルタブをクリックし、そこで見れるファイルの物理構成と、プロジェクトウィンドウで見た論理構成を比較してください。<br />
<br />
図１１: プロジェクトウィンドウとファイルウィンドウの比較<br />
<a href="http://blog.garden-place.jp/media/2/20080209-projectsandfiles.png">projectsandfiles</a><br />
<br /></li>
<li>ファイルウィンドウでプロジェクトを右クリックすると、プロジェクトウィンドウの時のポップアップメニューと比較して、違うメニューが表示されていることに気付きます。例えばプロジェクトウィンドウでのポップアップメニューは他の多くのRailsに特化したアクションに加えて「生成」、「Rake タスク の実行」、「Rails コンソール」などのアクションがあります。</li>
</ol>

<h2 id="use-rails-file">Ruby on Railsファイルを扱う</h2>

<p>Rubyプロジェクトに加えて、NetBeansはRuby on Railsプロジェクトもサポートしています。Railsは、データベースと連携するＭＶＣモデルのWEBアプリケーションを素早く作ることができるフレームワークです。</p>

<p>Rubyプロジェクトと同じように、プロジェクトウィンドウやファイルウィンドウでファイルをダブルクリックすることでファイルをエディターで開くことができ、もしくはAlt+Shift+O（Macの場合はCtrl+Shift+O）キーを押下してファイル名で検索できます。</p>

<p>プロジェクトウィンドウのポップアップメニューからは、ソースコードを生成するgenerateスクリプトやデータベースのテーブルを特定のバージョンにマイグレートするdbマイグレートタスクなどのような、RailsスクリプトやRakeタスクを簡単に呼び出せます。</p>

<p>IDEはファイルタイプ間の関係を理解し、関連したファイルへの移動が簡単にできるようになっています。例えばあなたがビューファイルを編集しているとすれば、ポップアップメニューを使って関連するアクションやテストに移動することができます。</p>

<p>全てのNetBeansプロジェクトと同じく「主プロジェクトを実行」ボタンをクリックして、アプリケーションを実行することができます。IDEは全てのファイルの変更を保存後WEBサーバを起動し、もし必要であればブラウザでトップページを表示します。エディター内のメニューから「ファイルを実行」を使用して、あなたが編集しているコントローラ、アクション、ビュー、ヘルパーなどの関連URLをブラウザで開くこともできます。</p>

<p><em>試してみよう</em></p>

<p>以下の手順を実施し、<a href="#use-ruby-file">Rubyファイルを扱う</a>セクションで作成したプロジェクトの改良版となるRailsのサンプルプロジェクトを作成してください。先ほどとの違いは、コンストラクタが固定的な引数を受け取る代わりに、一つのハッシュを引数として受け取り、データをYAMLから読み込み、ItemListクラスの機能はItemクラスが吸収したことです。</p>

<p><em>補足</em>: Railsプロジェクトは主にモデルクラスをデータベースのテーブルと関連付けます。しかし、ここではサンプルを素早くシンプルに作成するために、データをYAMLファイルから読み込むものとします。</p>

<h3>モデルクラスの作成</h3>

<ol>
<li>前のセクションでRuby on Railsプロジェクトを作成した場合はそれを使用しましょう。なければ作成してください。</li>
<li>プロジェクトウィンドウにて「モデル」を右クリックしポップアップメニューから「生成」を選択してください。Railsジェネレータダイアログが開き、下図１２のようにドロップダウンリスト「生成」でmodelが選択されているでしょう。<br />
<br />
図１２: モデルの生成時に呼び出されたRailsジェネレータ<br />
<a href="http://blog.garden-place.jp/media/2/20080209-WS000001.JPG">generatemodel</a><br />
<br /></li>
<li>「引数」に<em>Item</em>と入力し「了解」をクリックします。IDEは<em>Item.rb</em>という名のファイルを生成し、エディターで開きます。プロジェクトウィンドウのモデルの下にファイルがあらわれます。IDEは単体テスト、テストフィクスチャ、データベースマイグレーション>migrateの下にもそれぞれ雛形を作成します。</li>
<li><p>item.rbの中身を以下のソースコードに置き換えてください。</p>

<h4>サンプルコード６: Item クラス</h4>

<pre><code># Takes:
#   :id =&gt; unique item id
#   :type =&gt; type of item
#   :price =&gt; price of the item

class Item
  DATA_FILE="data.yml"
  attr_accessor :id, :type, :price

  def initialize(attributes)
    @id = attributes['id']
    @type = attributes['type']
    @price = attributes['price'].to_f
  end

  def to_s
    "Item #{@id} is a #{@type}: Price $#{@price}"
  end

  def self.load_item_data
    YAML.load_file(DATA_FILE).collect do |item_hash|
      Item.new(item_hash)
    end
  end

end
</code></pre></li>
</ol>

<h3>データファイルの作成</h3>

<ol>
<li>Itemクラスはデータの読み込み元としてdata.ymlファイルを必要とします。このファイルを作成するにはプロジェクトウィンドウでサンプルプロジェクトを右クリックし、ポップアップメニューから「新規」 > 「その他」と選択してください。</li>
<li>新規ファイルダイアログにてカテゴリで「Ruby」をファイルの種類で「YAML ファイル」を選択し、「次へ」をクリックしてください。</li>
<li>ファイル名に<em>data</em>と入力して「完了」をクリックします。IDEは<em>data.yml</em>という名のファイルをプロジェクトのルートフォルダに作成し、エディタでファイルを開きます。このファイルはルートフォルダにあるため、プロジェクトウィンドウの論理ビューには表示されませんが、ファイルウィンドウでは表示されます。</li>
<li><p>data.ymlの内容を以下のテキストに置き換えてください。</p>

<h4>サンプルコード７: data.yml</h4>

<pre><code> id: BF15678
 type: book
 price: 25.32
-
 id: C29589
 type: cd
 price: 18.95
-
 id: F89028
 type: beverage
 price: 2.00
-
 id: BN98232
 type: book
 price: 45.33
-
 id: BF15890
 type: book
 price: 15.98
</code></pre></li>
</ol>

<h3>コントローラとビューの作成</h3>

<ol>
<li>モデルは完成しました。次はコントローラとビューを作成しましょう。プロジェクトウィンドウでコントローラを右クリックし、ポップアップメニューから「生成」を選択してください。<br />
Railsジェネレータダイアログが開き、以下図１３のようにドロップダウンリスト「生成」で「controller」が選択されているでしょう。<br />
<br />
図１３: コントローラの生成時に呼び出されたRailsジェネレータ<br />
<a href="http://blog.garden-place.jp/media/2/20080210-WS000002.JPG">generatecontoroller</a><br />
<br /></li>
<li>「名前」に<em>Item</em>、「ビュー」に<em>index</em>と入力し「了解」をクリックします。IDEはItemコントローラクラスに加え、ビュー > item の下にindex.rhtmlビューを作成します。さらにIDEは機能テストの下にitem_controller_test.rbを、ヘルパーの下にitem_helper.rbを作成します。</li>
<li><p>作成したコントローラクラス item_controller.rb ファイルの内容を以下のソースコードに置き換えてください。</p>

<h4>サンプルコード８: ItemControllerクラス</h4>

<pre><code>class ItemController &lt; ApplicationController
  def index
    @items = Item.load_item_data
  end
end
</code></pre></li>
<li>indexアクションはコントローラがindexビューを表示する前に実行され、@itemsのグローバル配列変数を商品一覧として生成します。</li>
<li>素早くindex.rhtmlファイルに移動するには、以下図１４のようにindex定義部を右クリックし、ポップアップメニューから「ナビゲート」 > 「Rails のアクションまたはビューに移動」を選択してください。<br />
<br />
図１４: ビューへのナビゲート<br />
<a href="http://blog.garden-place.jp/media/2/20080210-WS000001.JPG">navigetview</a><br />
<br /></li>
<li><p>index.rhtmlの内容を以下のように置き換えてください。</p>

<h4>サンプルコード９: index.rhtml</h4>

<pre><code>&lt;h1&gt;List of Items&lt;/h1&gt;

&lt;table border="1"&gt;
  &lt;tr&gt;&lt;th&gt;Id&lt;/th&gt;&lt;th&gt;Type&lt;/th&gt;&lt;th&gt;Price&lt;/th&gt;&lt;/tr&gt;
  &lt;% for item in @items %&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;%= item.id %&gt;
      &lt;/td&gt;
      &lt;td&gt;&lt;%= item.type %&gt;&lt;/td&gt;
      &lt;td class="align-right"&gt;&lt;%= '%.02f' % item.price %&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;% end %&gt;
&lt;/table&gt;&lt;/code&gt;&lt;/pre&gt;
</code></pre>

<p>このHTMLの中に埋め込まれたRubyのコードはコントローラ内のindexアクションで定義されたグローバル配列変数@itemsの内容をすべて表示しています。</p></li>
</ol>

<h3>アプリケーションの実行</h3>

<ol>
<li>メインツールバーの「すべてを保存」ボタンをクリックし、全ての変更を保存してください。<br />
ファイルタブに表示されていた、ファイルが変更されたことを示すアスタリスク(*)が消えます。</li>
<li>エディタ内を右クリックし「ファイルを実行」を選択します。<br />
IDEはitemコントローラのindexアクションを実行するためのURLをサーバに送り、次にその結果画面をブラウザに表示します。<br />
<br />
図１５: ブラウザに表示されたindexビュー<br />
<a href="http://blog.garden-place.jp/media/2/20080210-appinbrowser.png">appinbrowser</a><br />
<br /></li>
<li>アプリケーション全体を実行するために「主プロジェクトを実行」ボタンをクリックしてみましょう。Ruby on Rails標準のトップページが表示されますが、これはデフォルトでは「公開」 > index.htmlファイルが表示される設定になっているためです。次の手順でルーティングの設定を変更することができます。</li>
<li>プロジェクトウィンドウの「公開」を展開してください。</li>
<li>index.htmlを右クリックし、ポップアップメニューから「削除」を選択してください。</li>
<li>プロジェクトウィンドウで「構成」を展開し、routers.rbをダブルクリックしてエディタで開いてください。</li>
<li><p>以下のコメント文を探してください。</p>

<pre><code># map.connect '', :controller =&gt; "welcome"
</code></pre>

<p>このコメントを以下のソースコードのように置き換えてください。</p>

<h4>サンプルコード１０: ルーティングコード</h4>

<pre><code># You can have the root of your site routed by hooking up ''
# -- just remember to delete public/index.html.
map.connect '', :controller =&gt; "item"
</code></pre></li>
<li>ルーティングの変更をサーバに反映させるためには、以下図１６のようにIDEの右下角にあるサーバ停止ボタンをクリックしてください。<br />
<br />
図１６: サーバ停止ボタン<br />
<a href="http://blog.garden-place.jp/media/2/20080210-WS000008.JPG">stopserver</a><br />
<br /></li>
<li>「主プロジェクトを実行」ボタンをクリックし、アプリケーションをブラウザで実行してください。</li>
</ol>

<h3>学んだことを練習しましょう</h3>

<ol>
<li>まず何もない状態からプロジェクトを作成します。タスクリストの一覧を表示するRuby on Railsプロジェクトを作成しましょう。</li>
<li><a href="http://www.netbeans.org/kb/60/ruby/setting-up.html#dbservers">JRubyでデータベースを使う</a>（英語） と <a href="http://www.netbeans.org/kb/60/ruby/rapid-ruby-weblog.html">Rubyでブログを10分で作る</a>（英語） を参照してください。ファイルの代わりにデータベースを使って、自分のタスクリスト管理アプリケーションを作成するにはどうすればいいでしょうか？</li>
</ol>

<p><em>さらなる情報のために</em></p>

<ul>
<li>デモやチュートリアルは<a href="http://www.netbeans.org/kb/60/ruby/index.html">NetBeans Ruby ドキュメント インデックス</a>（英語）を参照してください。</li>
<li><a href="http://www.rubyonrails.org/">Ruby on Rails</a>（英語）のサイトには多くのデモ、資料、チュートリアル、サンプルがあります。</li>
<li>プラグインツールをダウンロードして、「Ruby 倉庫サンプルアプリケーション」をインストールすることもできます（現在のIDEのバージョンではすでにインストールされているでしょう）。このプラグインをインストールし、プロジェクトウィンドウで右クリックしポップアップメニューから「新規プロジェクト」を選択してください。カテゴリで「サンプル」を展開し「Ruby」を選択してください。そしてプロジェクトで「Depot アプリケーション」を選択して「次へ」をクリックします。「完了」をクリックし、ブラウザに表示される README の説明に従ってください。</li>
</ul>

<h2 id="use-ruby-console">JRuby Interactive Ruby (IRB) コンソールを使う</h2>

<p>おわかりの通りJRuby IRB コンソールは、ちょうどRuby IRBと同じように、対話的にRubyのプログラムを実行するためのモジュールです。それに加えてJRuby IRB コンソールはJavaアプリケーションと相互に連携する機能を提供します。</p>

<p>メインメニューから「ウィンドウ」 > 「Other」 > 「Ruby シェル (IRB)」を選択し、コンソールを開いてください。以下図１７のようにIDEの下部にコンソールが表示されます。</p>

<h4>図１７: JRuby IRB コンソール</h4>

<p><a href="http://blog.garden-place.jp/media/2/20080210-WS000009.JPG">irb</a></p>

<p>IRBコンソールはNetBeansがインストールされているフォルダを作業フォルダとしています。別のフォルダに移動するには次のコマンドの<em>your-path</em>の部分をあなたの環境のRubyファイルが設置されているパスに置き換えて入力してください。</p>

<pre><code>=&gt; Dir.chdir("your-path")
</code></pre>

<p><em>試してみよう</em></p>

<ol>
<li>メインメニューから「ウィンドウ」 > 「Other」 > 「Ruby シェル (IRB)」を選択しIRBコンソールを開いてください。</li>
<li>環境に慣れるために、PLATFORM, VERSION, ENV_JAVA, ENVのようにいくつかRubyの定数を入力してみましょう。Object::constantsと入力し全てのトップレベル定数を表示しましょう。</li>
<li><p>Rubyの命令文を試すためにIRBを使用しましょう。例えば次のように入力してRubyの出力を見てみましょう。</p>

<pre><code>&gt;&gt; String.ancestors
&gt;&gt; "fig mango orange melon grapes".split(pattern="\s")
&gt;&gt; "users@ruby.netbeans.org" =~ /\A[\w\._%-]+@[\w\.-]+\.[a-zA-Z]{2,4}\z/
</code></pre></li>
<li>例えば投げられる例外の種類の確認など、他に試してみたいと思うRuby命令文を考えてみましょう。</li>
<li>コード補完のポップアップを試してみましょう。まず何文字か入力した後にタブキーを押し、以下の図１８のように候補リストが表示されることを確認しましょう。そのまま文字を入力し続けることで候補のリストは限定されていきます。その中から選択し、エンターキーを押してください。<br />
<br />
図１８: コード補完ポップアップ<br />
<a href="http://blog.garden-place.jp/media/2/20080210-WS000007.jpg">codesuggest</a><br />
<br /></li>
<li>「↑」（矢印の上キー）を何度か押すことで過去に入力したコマンド履歴をさかのぼり、「↓」（矢印の下キー）を押せば逆方向に参照できます。エンターキーそのコマンドを再度実行できます。</li>
</ol>

<p><em>さらなる情報のために</em></p>

<ul>
<li><a href="http://www.rubycentral.com/pickaxe/index.html">プログラミングRuby</a>（英語）の<a href="http://www.rubycentral.com/pickaxe/irb.html">対話的Rubyシェル</a>（英語）の章にはIRBの使用法とカスタマイズについての情報があります。</li>
<li><a href="http://docs.codehaus.org/display/JRUBY/The+JRuby+Tutorial+Part+1.5+-+Using+JIRB+to+Check+Java+Behaviour">JIRBの使用によるJavaの振る舞いの確認</a>（英語）にはJRuby IRBでJavaのコードを試すための例が紹介されています。</li>
</ul>

<h2>次のステップ</h2>

<ul>
<li>IDEを使って素早くRuby on Railsアプリケーションを作成する方法を学ぶには<a href="http://www.netbeans.org/kb/60/ruby/rapid-ruby-weblog.html">Rubyでブログを10分で作る</a>を参照してください。</li>
<li>NetBeansのRuby開発機能に関するサポートや最新の情報を得るには <a href="http://ruby.netbeans.org/servlets/ProjectMailingListList">users@ruby.netbeans.org</a> と <a href="http://ruby.netbeans.org/servlets/ProjectMailingListList">dev@ruby.netbeans.org</a> のメーリングリストに参加してください。</li>
<li>あなた自身がNetBeansのRubyチュートリアルを寄稿するためには<a href="http://www.netbeans.org/community/contribute/">NetBeans Community Docs</a>を訪れてください。</li>
</ul>
]]></description>
 <category>翻訳</category>
<comments>http://blog.garden-place.jp/oborobeer/item_74.html</comments>
 <pubDate>Sun, 10 Feb 2008 15:27:36 +0900</pubDate>
</item>
  </channel>
</rss>
