第8回 Rails 1.2 の API ドキュメントを作る

2008/03/04

Ruby on Rails での開発中によくお世話になるのが、http://api.rubyonrails.org/ です。でも、ちょっと困ったことに、ここに掲載されている情報は、最新版の Rails の API だけです。古いバージョンの Ruby on Rails で開発してる場合は、そのバージョンのドキュメントが必要になります。

以下、Rails 1.2.3 のドキュメントを自分で作る手順を説明しましょう。(以下、Linux/Mac OS X での手順を掲載します。Microsoft Windows では sudo を省略し、ディレクトリの区切り文字 /\ と読み替えてください。)

まず、RubyGems のバージョンを調べましょう。

% gem --version
1.0.1

もし、RubyGems のバージョンがこれよりも古いようなら、アップデートします。

% sudo gem update --system

次に、インストールされている Rails のバージョンを調べましょう。

% gem list rails
*** LOCAL GEMS ***

rails (2.0.2, 1.2.6, 1.2.3)

もし、1.2.3 の文字がリストになかったら、バージョンを指定して Rails をインストールします。

% sudo gem install rails --version=1.2.3

次に、適当な作業ディレクトリ(例:/home/kuroda/working)に移動して、新規 Rails アプリケーション api を作ります。ただし、_1.2.3_ と書かないと、最新バージョン(2.0.2)用のアプリケーションが作成されてしまうので注意してください。

% cd /home/kuroda/working
% rails _1.2.3_ api

次に、Rake タスク rails:freeze:gems を実行します。

% cd api
% rake --require=rubygems/gem_runner rails:freeze:gems VERSION=1.2.3
(in /home/kuroda/working/api)
Freezing to the gems for Rails 1.2.3
Unpacked gem: '/home/kuroda/working/api/vendor/rails/activesupport-1.4.2'
Unpacked gem: '/home/kuroda/working/api/vendor/rails/activerecord-1.15.3'
Unpacked gem: '/home/kuroda/working/api/vendor/rails/actionpack-1.13.3'
Unpacked gem: '/home/kuroda/working/api/vendor/rails/actionmailer-1.3.3'
Unpacked gem: '/home/kuroda/working/api/vendor/rails/actionwebservice-1.2.3'
Unpacked gem: '/home/kuroda/working/api/vendor/rails/rails-1.2.3'

ここで、 --require=rubygems/gem_runner を付けないと、次のようなエラーが出て止まってしまいます。この現象は、0.9.5 以降の RubyGems で発生します。

% rake rails:freeze:gems VERSION=1.2.3
Freezing to the gems for Rails 1.2.3
rake aborted!
uninitialized constant Gem::GemRunner

(See full trace by running task with --trace)

このエラーが一度出てしまうと --require オプションを付けて先程のタスクを実行しても、別のエラーが出て止まります。

% rake --require=rubygems/gem_runner rails:freeze:gems VERSION=1.2.3
rake aborted!
no such file to load -- /home/kuroda/working/api/config/../vendor/rails/railties/lib/initializer
/home/kuroda/working/api/Rakefile:4
(See full trace by running task with --trace)

しかし、vendor/rails ディレクトリを削除すれば正常に動作するようになります。

% rmdir vendor/rails
% rake --require=rubygems/gem_runner rails:freeze:gems VERSION=1.2.3

次に、Rake タスク doc:rails を実行します。

% rake doc:rails

doc/api ディレクトリの下に index.html 他の大量の HTML 文書が生成されます。これをブラウザで開けば Rails 1.2.3 の API ドキュメントが表示されます。

参考資料