第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 ドキュメントが表示されます。