2009年9月1日火曜日

[Rails][CodeReading] Rails::Initializer (29) (30) check_gem_dependencies

Initializer.process で29番目に呼ばれる check_gem_dependencies メソッド。

def check_gem_dependencies
unloaded_gems = @configuration.gems.reject { |g| g.loaded? }
if unloaded_gems.size > 0
@gems_dependencies_loaded = false
# don't print if the gems rake tasks are being run
unless $gems_rake_task
abort <<-end_error
Missing these required gems:
#{unloaded_gems.map { |gem| "#{gem.name} #{gem.requirement}" } * "\n "}

You're running:
ruby #{Gem.ruby_version} at #{Gem.ruby}
rubygems #{Gem::RubyGemsVersion} at #{Gem.path * ', '}

Run `rake gems:install` to install the missing gems.
end_error
end
else
@gems_dependencies_loaded = true
end
end


# initializer.rb
check_gem_dependencies

# bail out if gems are missing - note that check_gem_dependencies will have
# already called abort() unless $gems_rake_task is set
return unless gems_dependencies_loaded

ロードされていないgemが残っていて、かつgems rake tasks中でなければabortしています。


[Rails][CodeReading] Railsの初期化コードを読む (イントロ&目次)

0 件のコメント:

コメントを投稿