Web 2.0の技術を使って,実際にアプリケーションを作ってみましょう。まず1つめは,AmazonのWebサービスを使った蔵書管理サイトです。Ruby on Railsを使って,Amazonから書籍データをAjax通信で取得し,Webブラウザで一覧できるようにします。

写真1●ISBN番号(左上)
写真1●ISBN番号(左上)

 書籍の裏面を見ると,その本を一意に識別するISBNと呼ばれる番号があるのが分かります(写真1*1。番号が2つある場合には,上の番号がISBNです。書店でもこのISBNを持って行くと,スムーズに注文できます。

 ISBNのデータベースには,番号と書籍名,出版社や著者名などといったデータが登録されています。ISBN番号を入力するだけで簡単に書籍データを取り出すことができます。ただし,ISBNのデータベースは書店向けで一般には公開されておらず,個人では使うことができません。しかし,世界最大手のオンライン書店の米Amazon社が公開しているWebサービスを使えば,Amazonで扱っている書籍の情報をISBNで検索して利用できます。Amazonから取得できる情報には,書籍名などの基本情報以外に,表紙の画像やAmazon内での売り上げランキングなどがあります。

 本記事では,AmazonのWebサービスを使い,ISBN番号を入力するだけで,書籍を管理できるサイトを作ります。この蔵書管理サイトは,書籍の登録,一覧表示,編集,削除を行うことができます(写真2)。こうしたアプリケーションはRuby on Railsのもっとも得意とするところです。Ajax技術を使って,ページを更新せずに,Amazonの情報を取得するようにします。

写真2●今回作成する蔵書管理サイト
写真2●今回作成する蔵書管理サイト

Rubyをインストールする

 まず,Webアプリケーションの土台となる各種ソフトウエアを導入しましょう。

 以下では,Linuxディストリビューションとして,Fedora Core 5を使ったケースで説明します。Fedora Coreの開発環境をインストールしていない場合は,「アプリケーション」メニューの「ソフトウエアの追加と削除」を選び,「開発」から「開発ツール」,「開発ライブラリ」を選ぶなどして,開発環境を導入してください。

 蔵書のデータを保存するデータベース・ソフトには,「SQLite3」を使うことにします。SQLite3は,MySQLやPostgreSQLなどと違い,デーモンを稼働させないデータベース・サーバーです。

 Webサーバーには,Ruby on Railsの「Webrick」を使います。Webサーバーとしての基本的な機能は持っているため十分です。Apache HTTP Serverをインストールする必要はありません。

 Ruby on Railsの実行にはRuby 1.8.4以上が必要になります。これは,Fedora Coreで提供されているパッケージを,yumコマンドを用いて導入します*2。同時にSQLiteのパッケージも導入しておきます(写真3)。

写真3●SQLiteの導入
写真3●SQLiteの導入

# yum install ruby ruby-libs ruby-devel irb rdoc sqlite-devel 

 Rubyが正しくインストールされたかをチェックします。

$ ruby -v 

 インストールされていればバージョンが表示されます。1.8.4以上なら正しく導入されています。

RubyGemsをインストールする

 続いて,「RubyGems」というパッケージ管理ソフトを導入します。RubyGemsは,yumやaptのようにネットワークからの自動インストールを行うソフトです。Ruby on Railsをはじめとして,多くのRubyアプリケーションは,RubyGemsの形式でパッケージ化されて提供されています。まず,このRubyGemsを導入し,そこからRuby on Railsやその他のパッケージを導入します。

 RubyGemsは,yumのパッケージでは提供されていないので,yumでは導入できません。そのため,ソースから導入します。ソースのアーカイブ・ファイルrubygems-0.9.0.tgzは,ダウンロード・ページから取得できる本連載用コンテンツ(toku1.tar.gz)を解凍するか,RubyForgeからダウンロードしてください。

 rubygems-0.9.0.tgzを取得後,次のコマンドを入力して,導入します。

$ tar xzf rubygems-0.9.0.tgz 
$ cd rubygems-0.9.0 
$ ruby setup.rb config 
$ ruby setup.rb setup 
$ su 
パスワード(P): rootのパスワード 
# ruby setup.rb install 

 正しく導入されれば,gemコマンドが利用できるようになります。正常に導入されたか,図1のように確認してみます。エラーが出なければ,導入完了です。

$ gem environment
Rubygems Environment:
- VERSION: 0.9.0 (0.9.0)
- INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8
- GEM PATH:
- /usr/lib/ruby/gems/1.8
- REMOTE SOURCES:
- http://gems.rubyforge.org
図1●RubyGemsがインストールできたかを確認

Ruby on Railsを導入する

 次に,Ruby on Railsをインストールします。本連載用コンテンツには,Ruby on Rails 1.1.6のgemパッケージを収録しています。gemコマンドを使い,*.gemファイルを導入していきます。

 先ほど解凍したtoku1.tar.gzの中のgemsディレクトリに必要なパッケージがすべてそろっているので,これを導入します(図2)。

# cd gems
# gem install activesupport-1.3.1.gem
# gem install actionpack-1.12.5.gem
# gem install activerecord-1.14.4.gem
# gem install actionwebservice-1.1.6.gem
# gem install actionmailer-1.2.5.gem
# gem install rake-0.7.1.gem
# gem install rails-1.1.6.gem
# gem install sqlite3-ruby-1.1.0.gem
図2●本連載用コンテンツに収録したRuby on Railsと関連ソフトをgemコマンドで導入する

 なお,インターネット経由で導入するには,図3のようにします。インストール中にsqlite-rubyのバージョンを聞かれるので,最新のバージョンで「(ruby)」と付いている選択肢を選んでください。

# gem install rails sqlite3-ruby --include-dependencies
...( 中略)...
Select which gem to install for your platform (i386-linux)
1. sqlite3-ruby 1.1.0 (mswin32)
2. sqlite3-ruby 1.1.0 (ruby)
...( 中略)...
9. sqlite3-ruby 0.6.0 (ruby)
10. sqlite3-ruby 0.5.0 (ruby)
11. Cancel installation
> 2  ← 最新の(ruby)を選択
...( 中略)...
図3●インターネット経由でRuby on Railsを導入する方法activesupportやRakeも同時にインストールされる。

 正しくRuby on Railsが導入されたかを確認してみましょう。

# rails -v 
Rails 1.1.6

 バージョンが表示されれば,正しく導入されています。

 これでRuby on Railsでアプリケーションを開発するために必要なパッケージは,すべて導入されました。

 続いて,Rubyアプリケーションの実行環境を導入します。具体的には,Amazon のWebAPIを操作するRubyのライブラリなどです。詳細は解説しませんが,jsonやfeedtoolsなどがあります。

 先と同じディレクトリで,図4のようにコマンドを実行します。ネットワークからインストールする場合には,図5のように実行します。インストール中に,hpricotのバージョンを聞かれますので,最新のバージョンで(ruby)を選択してください。

# gem install json-0.4.1.gem
# gem install uuidtools-1.0.0.gem
# gem install builder-2.0.0.gem
# gem install feedtools-0.2.26.gem
# gem install icalendar-0.97.gem
# gem install hpricot-0.4.gem
# gem install amazon-ecs-0.5.0.gem
# gem install daemons-0.4.4.gem
# gem install gem _ plugin-0.2.1.gem
# gem install mongrel-0.3.13.3.gem
図4●本連載用コンテンツを使ってRuby実行環境を一気にインストールする

# gem install json feedtools icalendar amazon-ecs mongrel --inclu
de-dependencies
...(中略)...
Select which gem to install for your platform (i386-linux)
1. mongrel 0.3.13.4 (ruby)
2. mongrel 0.3.13.4 (mswin32)
3. mongrel 0.3.13.3 (ruby)
4. mongrel 0.3.13.2 (ruby)
...(中略)...
43. Cancel installation
> 1 ← 最新の(ruby)を選択
...(中略)...
1. hpricot 0.4 (ruby)
2. hpricot 0.4 (mswin32)
3. Cancel installation
> 1 ← 最新の(ruby)を選択
...(中略)...
図5●図4と同じことをインターネット経由で実施する方法

 これで,本連載で作成するRubyアプリケーションの実行環境が整いました。