rails: Gem::Dependency#version_requirements is deprecated

RubyGems のバージョンを 1.3.6 に上げたら、Rails アプリケーションの起動時に次のような警告メッセージが出るようになった。


Gem::Dependency#version_requirements is deprecated
and will be removed on or after August 2010.
Use #requirement

次のコードを config/environment.rb に挿入するとこの警告を消せる。


if Gem::VERSION >= "1.3.6"
module Rails
class GemDependency
def requirement
r = super
(r == Gem::Requirement.default) ? nil : r
end
end
end
end

挿入する位置は、require File.join(File.dirname(__FILE__), 'boot') と Rails::Initializer.run do |config| の間である。

もちろん、単なる警告なので気にしなくてもいい。すでに修正がコミットされているので、次の Rails 2.3.6 では警告が出ないはず。

参考資料: