ラベル Ruby on Rails の投稿を表示しています。 すべての投稿を表示
ラベル Ruby on Rails の投稿を表示しています。 すべての投稿を表示

2009年9月17日木曜日

Ruby on Rails で Amazon Product Advertising API

2009/08/15からAmazon のアソシエイトWebサービス(AWS)は、Amazon Product Advertising APIに変更されたので、実装してみました。

Amazon Product Advertising API

Amazon Product Advertising APIに変更になってから、今まではAccess Key IDで接続できていましたが、Secret Access Keyがないと認証できない仕様になっています。
こちらから新規登録またはログインして、管理画面でSecret Access Keyを取得でいるようになっています。

Ruby on RailsでAmazon Product Advertising APIを利用するには、いくつかライブラリがありますが、
今回は「amazon-ecs」を利用して実装します。

環境
  • Ruby 1.8.6
  • Rails 2.3.4
  • gem 1.3.5
  • amazon-ecs 0.5.7
1. Amazon Product Advertising APIに登録
こちらから新規登録して、Access Key ID、Secret Access Keyを取得します。

2. amazon-ecsをインストール
gem install amazon-ecs

3. Railsプロジェクトを作成
rails AmazonEcs -d mysql

4. controllerを作成
script/generate controller amazon

APIから情報を取得してくるので、DBは不要です。
保存する場合は、DBを作成してください。

5. environment.rbにamazon-ecsの設定を追記
require 'amazon/ecs'
Amazon::Ecs.debug = true
Amazon::Ecs.options = {
:aWS_access_key_id => "xxxxxxxxxxxxxxxxxxxxx",
:aWS_secret_key => "xxxxxxxxxxxxxxxx"
:associate_tag => "xxxxxx",
:country => :jp
}

6. controllerにAmazon商品検索処理を追加
@res = Amazon::Ecs.item_search("fergie")

7. viewに検索した商品を表示
<ul>
<% @res.items.each do |item| %>
<li><%= item.get('title') %> - <%= item.get('author') %></li>
<% end %>
</ul>

これで、「fergie」の商品情報を取得できるようになります。
APIにはオプション機能が色々とあるので、詳細はドキュメントを確認してください。

API Reference

2009年9月11日金曜日

google maps on rails

Ruby on Rails 2.x 以降で、Google Maps を利用する方法です。
いまさら、Google Maps の話かよ。って気もしますが、色々やり方が違ってきているので・・・

環境
  • ruby 1.8.6
  • rails 2.3.4
  • gem 1.3.5
  • ym4r-gm 0.4.1
まず Google Maps API から key を取得します。
開発環境であれば、 localhost:3000 で問題ないと思います。


1. プロジェクトを作成する
rails map_example -d mysql

2. データベースを設定する
適当にデータベースを作成して、datebase.ymlを編集する。

3. コントローラーを作成する
ruby script/generate controller location index

4. ym4r-gm プラグインをインストールする
ruby script/plugin install git://github.com/queso/ym4r-gm.git

5. google maps api key を YAML を追加する
/config/gmaps_api_key.yml に取得した key を追加する。

6. ヘッダーに google maps を利用するコードを入れる
views\layouts\location.html.erb のヘッダーに以下を追加する。

<%= GMap.header %>
<%= @map.to_html unless @map.blank? %>

7. コントローラから google maps のオブジェクトを作成する
coordinates = [longitude, latitude]

@map = GMap.new("map")
@map.control_init(:large_map => true, :map_type => true)
@map.center_zoom_init(coordinates,14)
@map.overlay_init(GMarker.new(coordinates, :title => "タイトル", :info_window => "吹き出しの内容"))

8. view に google maps を表示する
<%= @map.div(:width => 500, :height => 300) %>

これで google maps と連携したアプリケーションを作成できます。
あとは、 controller で maps オプションを色々と追加すればOKです!

2009年8月29日土曜日

Twitter4R on RailsでTwitterへPostしてみる

今流行りのTwitterですが、Rubyライブラリ「Twitter4R」をRuby on Railsから読み込んで、TwitterへPostしてみる簡単なアプリケーションを作成してみます。

環境
  • Ruby 1.8.6
  • Rails 2.3.2
  • Twitter4R 0.3.1

1. Twitter4Rをインストールする
gem install twitter4r
Successfully installed json-1.1.7-x86-mswin32
Successfully installed twitter4r-0.3.1
2 gems installed
Installing ri documentation for json-1.1.7-x86-mswin32...
Installing ri documentation for twitter4r-0.3.1...
Installing RDoc documentation for json-1.1.7-x86-mswin32...
Installing RDoc documentation for twitter4r-0.3.1...


2. Railsプロジェクトを作成する
rails -d mysql twitter4r

3. コントローラ、ビューを作成する
ruby script\generate controller twitter index

4. application_controller.rbからTwitter4Rを読み込む
require 'rubygems'
gem('twitter4r', '>=0.3.1')
require 'twitter'
require 'time'

5. twitter_controller.rbにメソッドを追加する
USERNAME = '自分のtwitterアカウント'
PASSWORD = '自分のtwitterパスワード'

class TwitterController < twitter =" Twitter::Client.new(:login"> USERNAME, :password => PASSWORD)
status = twitter.status(:post, 'twitter4rからのpostです。')
end
end

6. ブラウザからアクセスする
http://localhost:3000/twitter/


以上でtwitterへPostされます。
簡単です。30分くらいで実装はできてしまいます。

他にもタイムラインの表示とか、メッセージとか、twitterで利用できる機能は一通り実装可能です。
詳細はTwitter4Rで確認できます。

これを利用すればbotも簡単にできそうですね。

2009年4月18日土曜日

gem コマンドの使い方をまとめる



gem コマンドは最低限しか利用したことがなかったので、まとめてみました。

バージョン確認
gem -v
gem env

一覧表示
gem list
gem list パッケージ名

パッケージ検索
gem search -r パッケージ名
gem search パッケージ名 -rda

インストール
gem install パッケージ名
gem install パッケージ名 --version バージョン
gem install パッケージ名(ローカル)

アンインストール
gem uninstall パッケージ名

最新版以外をアンインストール
gem clean パッケージ名

アップデート
gem update パッケージ名

ヘルプ
gem help

2009年4月12日日曜日

RMagick on Windows



RMagick を利用したアプリケーションを作成するため、インストールから動作するまでの備忘録です。
RMagick を利用するためには、ImageMagick もインストールする必要があります。

ImageMagick とは
画像を扱うための機能を提供してくれるライブラリです

RMagick とは
ImageMagick を Ruby で扱えるようにするライブラリです

動作環境
  • Ruby 1.8.6
  • Rails 2.3.2
  • Gem 1.3.1
  • RMagick 2.9.0
  • ImageMagick-6.4.8-6-Q8
インストール
  1. RubyForge: RMagick からダウンロードします
  2. 解凍して ImageMagick をインストールします
  3. RMagick をインストールします
gem install rmagick --local

動作確認
画像をリサイズするプログラムを作成してみました。
require 'rubygems'
require 'RMagick'
include Magick
image = ImageList.new('test.jpg')
image.resize(200,200).write('resize.jpg')
コマンドプロンプトから実行してみます。
ruby rmagick.rb
エラーが出てしまいました・・・
./RMagick.rb:9: uninitialized constant Magick (NameError)
Google先生で色々と調べていて、RMagick 2.9.0 では動作しないとか Microsoft Visual C++ 2008 SP1 Redistributable Package が入っていないと gem でエラーが出るとか、よくわからない状況なので、
とりあえず Visual C++ 2008 をインストールして再度実行してみました。
RubyForge: RMagick: help を参考にしました。
ruby rmagick.rb
まだエラーが出るので、とりあえず RMagick 2.7.1 にダウングレードしてみました。
  1. ImageMagick-6.4.8-6-Q8 をアンインストール
  2. gem uninstall rmagick
  3. ImageMagick-6.4.5-3-Q8 インストール
  4. RMagick 2.7.1 インストール
コマンドプロンプトからバージョンを確認してみましたが、正常にインストールされているみたなので、再度実行してみました。
convert -list configure
ruby rmagick.rb
エラーです・・・
またまた調べていると gem バージョンと RMagick バージョンに関係があるようです。
gem 1.3.1 と RMagick 2.9.0、2.7.1 はダメなのでしょうか。
そもそも Windows でも限界を感じます・・・

2009年3月31日火曜日

Ruby on Rails API



Railsで開発する場合は必ずAPIを検索する機会があると思いますが、api.rubyonrails.orgは検索がないので、使いづらいと思っている方も多いと思います。

そこで私が利用しているAPIサイトのご紹介です。

Rails Searchable API Doc
ver2.3.2にも対応しており、検索もしやすく便利です。
Rails開発者の方はおすすめです。

gotAPI
Rails以外にもHTML、CSS、JavaScript、PHP、Javaなど、他多数のAPIを持っているサイトです。
今まではこれを利用していました。
便利すぎなサイトです。

たぶん他にもあると思いますが、おすすめなサイトがあればおしえてくださいー!

2009年3月26日木曜日

rake migrate で longblob 型にする



MySQLで写真・画像などをファイル保存ではなくテーブルに保存する場合は、型をlongblobにしなければいけませんが、Railsのmigrateではlongblobは指定できません。
rake migrateでlongblobを指定する方法です。
(DDLから作成すれば問題ないですが・・・)


 def self.up
  create_table :xxxxx do |t|
   t.binary :photo
  end
  execute("alter table xxxxx change photo photo longblob");
 end



binaryを指定するとblob型になります。
blob型で作成し、executeでalter tableします。
何か気持ち悪い感じですね・・・

ちなみに一般的に利用する型も書いておきます。

string ⇒ varchar(255)
text ⇒ text
integer ⇒ int(11)
float ⇒ float
decimal ⇒ decimal(10,0)
datetime ⇒ datetime
timestamp ⇒ datetime
time ⇒ time
date ⇒ date
binary ⇒ blob
boolean ⇒ tinyint(1)

2009年3月25日水曜日

restful-authentication プラグインを使ってみる(1)



前から個人的にサービスを作ろうと思っていて、時間が作れなくて進めていませんでしたが、少し時間が作れそうなので本格的にはじめました。
とりあえずログイン認証から作る!ということで、Railsでデファクトの「restful-authentication」を利用してみます。


1. プロジェクト作成
rails -d mysql hogehoge

2. git コマンドのパスを通す
コマンドプロンプトから git が利用できるようにパスを通しておきます。

3. restful-authentication インストール
ruby script
/plugin install git://github.com/technoweenie/restful-authentication.git

4. aasm インストール
ruby script/plugin install git://github.com/rubyist/aasm.git

5. forgot-password インストール
ruby script/plugin install git://github.com/greenisus/forgot_password.git

6. user と session モデルを作成する

ruby script
/generate authenticated user sessions --include-activation --aasm

routes.rb に以下が追加される
 map.forgot_password '/forgot_password', :controller => 'passwords', :action => 'new'
 map.change_password '/change_password/:reset_code', :controller => 'passwords', :action => 'reset'
 map.resources :passwords
 map.logout '/logout', :controller => 'sessions', :action => 'destroy'
 map.login '/login', :controller => 'sessions', :action => 'new'
 map.register '/register', :controller => 'users', :action => 'create'
 map.signup '/signup', :controller => 'users', :action => 'new'
 map.resources :users
 map.resource :session

7. password モデルを作成する

ruby script
/generate forgot_password password user

8. aasm を読み込ませる
aasm はそのままでは読み込めないので、読み込めるように修正します。

File : vendor/plugins/restful-authentication/rails/init.rb
require File.join(File.dirname(__FILE__), "..", "lib", "authorization", "aasm_roles")

9. アクティベーション用の route を追加する
File : config/routes.rb
map.activate '/activate/:activation_code', :controller => 'users', :action => 'activate', :activation_code => nil
map.resources :users, :member => { :suspend => :put, :unsuspend => :put, :purge => :delete }

10. user モデルのオブザーバを定義する
File : config/environment.rb
config.active_record.observers = :user_observer

11. 認証システムをインクルードする
File : app/controller/application.rb
include
AuthenticatedSystem

12. データベースを作成する

13. テーブルを作成する
rake db:migrate

14. サーバを起動する
ruby script\server


これでユーザ管理の一通りの機能が利用できます。
  • 新規登録
http://localhost:3000/signup
  • ログイン
http://localhost:3000/login
  • ログアウト
http://localhost:3000/logout

次回は、アクティベーションメール送信、パスワード再設定、アプリケーション実装を行います。

2009年3月20日金曜日

Ruby on Rails 2.3.2 リリース



Ruby on Rails 2.3.2 リリースがリリースされましたね。
この前 2.2.2 がリリースされたと思っていたのに・・・

変更点はRuby on Rails 2.3 Release Notesとかうぇぶたまでチェックするとして、気になったところを。

Rack サポート
2.3.2からRackをサポートしたようです。
Rackをサポートしているので、たぶんgemでインストールしないといけなくなると思いますが・・・
ただRackサポートはRails開発にとってはかなり大事です。
Rackはミドルウェアのようなイメージで、WebサーバとRailsアプリケーションの問題を吸収してくれます。
開発者はWebサーバを意識しないでも、サクっと開発できちゃいますね。

Rails Metal
これもRackと関係するのですが、超高速なControllerです。
ActionControllerとroutingはスルーするようで、直接Rackと連携して動作するみたいです。
ここは結構やっておく必要がでてきそうですね。

Application Template
アプリケーション生成エンジン。
これはずっと欲しいと思っていました!
template.rbに必要なプラグインとか情報を設定していて、プロジェクト作成時に読み込ませれば、自動的に環境が整うみたいです。
開発者も楽になりそうですね!

2009年3月17日火曜日

Rails Magazine #1 無料配布サイト



先日 Rails Magazine が発売されましたが、無料でPDF閲覧できるサイトがありました。

Issue #1: The Beginning

2009年3月8日日曜日

Ruby on Rails の flash 変数



Railsを追っていないためか、初心者的な疑問が多くなってきた気がする・・・
最近、また勉強を始めましたが、flash も色々できるみたいなのでメモ。

flash とは?
セッション変数。
普通のセッション変数では破棄するまで値は保持されるが、flash の場合は1リクエストで自動的に破棄される。
エラーメッセージ格納なのでよく利用される。

使い方
コントローラ
flash[:error] = "hogehoge"

ビュー
<%= flash[:error] %>

flash 種類
1. flash
1リクエスト間で値が保持される。
メソッドAで定義すれば、メソッドBでも利用可能。
メソッドBが実行された時点で破棄される。

2. flash.now
定義したメソッド内のみで利用可能。
メソッドAで定義した場合、メソッドBでは利用不可。

3. flash.keep
値を保持し続ける。
引数なしで .keep を指定すればすべての flash が保持される。

2009年2月22日日曜日

rake aborted! undefined method `each' for Mysql



Ruby on Railsのアプリケーション基盤として利用できる「BaseApp」をWindowsにインストールしました。
少しはまってしまったので、メモしておきます。

環境
  • Ruby 1.8.6
  • Ruby on Rails 2.2.2
  • gem 1.3.1
  • MySQL 5.1

1. BaseAppをダウンロードしてプロジェクトを設置する

2. データベースを作成する
# mysql -uroot -p
# create database baseapp_development default character set utf8;
3. データベースを作成する
# rake db:migrate
capistranoがインストールされてません。みたいなエラーが表示されたので、インストールする。
# gem install capistrano
# rake db:migrate
   rake aborted!
   undefined method `each' for #
MySQLライブラリ関係でまたエラーが発生・・・
「--trace」オプションで詳細なエラーを確認しました。
# rake db:migrate -- trace
Google先生に助けてもらって、このページに原因が書いてありました。
Ruby Forum

MySQL 5.1ではライブラリ関係でエラーが発生するみたいで、5.0系を再インストールしました。
# rake db:migrate
  == Baseapp: migrating
  ========================================================
  -- create_table(:settings, {:force=>true})
   -> 0.0940s
  -- create_table(:users)
   -> 0.0780s
  -- add_index(:users, :login, {:unique=>true})
   -> 0.1560s
  -- create_table(:profiles)
   -> 0.0780s
  -- create_table(:open_id_authentication_associations, {:force=>true})
   -> 0.0940s
  -- create_table(:open_id_authentication_nonces, {:force=>true})
   -> 0.1250s
  -- create_table(:roles)
   -> 0.0620s
  -- create_table(:roles_users, {:id=>false})
   -> 0.0940s
  == Baseapp: migrated (4.9380s)
  ===============================================
無事データベースが作成できて、画面を表示することができました。
これからBaseAppを研究して、いろいろ展開する予定です。


2009年2月8日日曜日

2009年1月31日土曜日

Ruby on Rails 2.0.1 から 2.0.4 の主な変更点をまとめました



今まで Ruby on Rails 1.2 系を中心にプロジェクトでも進めてきましたが、そろそろ 2.0 系に移行しないといけないと思っているので、変更点についてまとめました。

2.0.1~2.0.4 までをまとめます。

2.0.1
  • ruby-debugが利用可能になった
【利用方法】
1. ruby-debugインストール
# gem install ruby-debug
(ruby-debug-baseもインストールされます)

2. requireする
require 'ruby-debug'

3. デバッグするところでdebuggerを追加する
def hoge
 debugger
end

4. サーバを再起動して、デバッグコマンドを入力する

list
デバッグしているところのソースを表示

p
p 変数名とすると、変数名の値を表示する

break
ブレークポイントを設定している一覧を表示する
(引数に行番号を指定すると新たにブレークポイントを設定できる)

del
引数に行番号を指定するとブレークポイントを削除する

cont
次のブレークポイントを実行する

h, help
コマンドで利用可能な一覧を表示する

  • activewebserviceからactiveresourceに変更された
2.0 からはさらにRESTを意識したフレームワークになった。
  • ルーティングの名前空間(調べる)
  • テンプレートフォーマットの変更
ERBで利用するフォーマットが以下のように変更されました。
  「index.rhtml」から「index.html.erb」
  「index.rxml」から「index.atom.builder」
  「index.xml」から「index.xml.erb」
  「index.rjs」から「index.rs.rjs」
  • BASIC認証モジュールが追加
通常のBASIC認証では .htaccess で設定しますが、Railsアプリケーション内で可能になりました。
class HogeController < only =""> :fuga

 def fuga
  render(:text => "BASIC認証のみ表示可能")
 end

 private
 def auth
  authenticate_or_request_with_http_basic do |user, pass|
   user == 'kenjiro' && pass == 'kenjiro'
  end
 end
end
  • JavaScript、CSSファイルをまとめて読み込み可能に
アプリケーションが大規模になると、JS、CSSファイルも増えてきますが、2.0 系からはアクセスを減らすために、読み込むファイルをまとめてできるようになりました。
テンプレートファイルでcacheを指定します。
  <%= javascript_include_tag(:all, :cache => true) %>

public/javascript ディレクトリ内に all.js というファイルが作成されて、all.js ファイルのみ読み込まれます。
CSSファイルも同様です。

ただデフォルトでは production のみ適用されているので、config/environment/development.rb ファイルの設定を変更する必要があります。

  config.action_controller.perform_caching = true
  • 静的ファイルの提供元を別サーバに向けるasset_host(調べる)
  • CSRF対策の変更
CSRF対策したいアクションを以下のように指定します。
  protect_from_forgery :secret => 'kenjiro', :only => :index
  • サニタイズ対策の変更
TextHelper#sanitizeのタグ指定の方法が、ブラックリストからホワイトリスト式に変更されました。

全体で設定する
Rails::Initializer.run do |config|
 config.action_view.sanitized_allowed_tags = 'tr', 'td'
 config.action_view.sanitized_allowed_attributes = 'id', 'class', 'style'
end

個別に設定する
 <%= sanitize @obj.body, :tags => %w(tr td), :attributes => %w(id class style) %>
  • 例外処理がコントローラ別に設定可能
rescue_from User::NotAuthorized, :with => :deny_acces

全体での指定は rescue_action_in_public があります。
プラグインをインストールして利用可能ですね。
  • セッション管理がcookieに変更
ハッシュ形式でcookieに保存されます。
  • リクエストプロファイラが追加(調べる)
HTML Render のベンチマークができるようになりました。
  • Feed 生成の簡素化
  • Query Cacheの追加
同じリクエストないからでは、キャッシュされた結果を返すように変更されました。
  • Migration の記述が変更
t.column :hoge, :integer => t.integer :hoge
  • to_json
JSON形式がシリアライズ可能になりました。
  • ActiveRecordを軽量化
actis_as 系の機能がプラグイン化されました。
移行する場合、ここで動作しない可能性が高です・・・
  • config/initializers
初期化する場合の設定ファイルを config/initializers に設置できるようになりました。


2.0.2
  • デフォルトのデータベースがsqlite3に変更
プロジェクト作成時にデータベースを指定すれば任意のデータベースを利用可能になります。
  • config.action_view.cache_template_loading = true が指定可能(調べる)


2.0.4
  • REXML の脆弱性に対応


次回は 2.1.0 から 2.2.2 までの変更点をまとめます。

2009年1月9日金曜日

Windows + Ruby on Rails 2.2.2 + MySQL 5.1 環境構築



先日購入したEee PCにRuby on Railsの環境を構築したので手順をメモしておきます。

1. MySQL 5.1インストール
インストール後はConfig Wizardから設定
文字コードを「UTF-8」に変更してパスを通す
2. Ruby、Ruby Gemsインストール
最新版が「1.8.6-27 Release Candidate 2」なので、安定版の「One-Click Ruby Installer 186-26 Final Release」をダウンロード
3. Ruby on Railsインストール
コマンドプロンプトからコマンドを実行
C:\> gem install rails --include-dependencies
4. gettextインストール
コマンドプロンプトからコマンドを実行
mswin32を選択
C:\> gem install gettext
5. JDKインストール
NetBeansの動作には、Java SE Development Kit(JDK)が必要
6. NetBeans Ruby Packインストール

7. ruyb debug ideインストール
コマンドプロンプトからコマンドを実行
ver 0.3.1でないとNetBeansから認識されなかった
C:\> gem install ruby-debug-ide -v 0.3.1

EMOBILEで環境構築したので時間がかかりましたが、無事に構築できました。

2009年1月7日水曜日

Ruby on Rails + FastCGI Error! 「aborted: error parsing headers: malformed header」



Ruby on Rails + FastCGIで運用しているアプリケーションがあるのですが、ページに「Application error」が表示されてしまいました。
(今時、FastCGIで運用するのは微妙なところですが)

アプリケーションログを見ても何も表示されていない・・・
Apacheのエラーログを見てみると、以下エラーが発生。
aborted: error parsing headers: malformed header

とりあえずGoogle先生に助けてもらい原因判明!
原因としては、ソースコードにデバッグ文「p」が入っていた・・・

恥ずかしいエラーです。
30分くらい悩み、時間がもったいなかったです。

とりあえず他にないか検索で確認しておきました。

find . -name ‘*.rb’ -exec grep -q ‘puts ’ ‘{}’ \; -print
find . -name ‘*.rb’ -exec grep -q ‘pp ’ ‘{}’ \; -print
find . -name ‘*.rb’ -exec grep -q ‘p ’ ‘{}’ \; -print

次回からは気をつけよう・・・

2008年12月27日土曜日

Ruby on Rails の思想



IT Conversationsで、DHH(Ruby on Rails作者)の講演が公開されています。
(2008年5月に開催されたRails Conf)

Railsで開発すると生産性が良いので、Railsエンジニアは余剰時間で自己投資しろ!みたいな事を言っています。

  • 仕事で使わない脳を鍛えろ
  • 長時間寝る
  • 読書する
  • プログラム以外の知識を身につける
  • コーディング量を減らす
  • 新たなことを始める
  • やっていることを公開して共有する

書籍まで紹介しています。









長時間は寝ていないですが、本は読むようにしています。
技術以外でも、いろいろな活動であったり、人とのコミュニケーションを作るため、交流会などがあれば参加するようになりました。
Railsエンジニアだからってわけではないですが・・・

2008年12月26日金曜日

Rails3 is Merb2











Ruby on Rails 3からMerbが統合されることになったみたいです。
この発表はかなり衝撃ですね。

Merb gets merged into Rails 3!
Rails 3高速化Merb技術採用、Rails 2非互換の可能性

Ruby on Railsの性能が改善されるのはいいですが、Rails 2とRails 3で非互換性なのは困ります。
(DHHは容易にアップグレードを可能にすると言っていますが・・・)
Rails 3がリリースされても、しばらく採用はないとは思いますが、移行する場合がすごく大変そうです。

開発側からみると、大きな変更は非常に厳しく感じますが、メリットも多数あります。

  • ORマッパー(ActiveRecord、DataMapper、Sequel)
  • RSpec
  • テンプレートエンジン(ERB、Haml)
  • JQuery

2008年12月18日木曜日

undefined method `require_gem' for main:Object



Webrick(Ruby on Railsに同胞されているWebサーバ)を起動しようとしたところエラーが発生しました。
undefined method `require_gem' for main:Object

gemをアップデートしたために発生しているみたいです。
Rails 1.1.6、gem 0.9.4で構築したRailsアプリケーションで、現在ローカル環境はRails 2.2.2、gem 1.3.1になっています。
gem 0.xで利用できていた「require_gem」メソッドは、gem 1.xでは利用できないためWebrickが起動できませんでした。

対応策として、config/boot.rbファイルを以下のように変更することにより、無事起動できました。

27 if rails_gem
28 - require_gem "rails", "=#{version}"
29 + gem "rails", "=#{version}"
30 require rails_gem.full_gem_path + '/lib/initializer'
31 else

あとgemアップデートする場合、require_gemを書き換えなければいけないので、以下コマンドの発行も必要になります。

# sudo gem update --system
# sudo gem pristine --all