私はRubyこの行のコード(たとえば http://www.sinatrarb.com/ )のサンプルを多数見ました。)これの目的は何ですか?
# require 'rubygems'
require 'sinatra'
get '/hi' do
"Hello world!"
end
すべての場合において、コードはこの行がなくても機能します。
それはしばしば不必要です。ただし、gem
コマンドを使用して、特定のgemの特定のバージョンを要求することができます。
require 'rubygems'
は、Ruby loadpath
を調整して、LoadError: no such file to load -- sinatra
。
Rubygems-1.3.6ドキュメントから:
RubyGemsが必要な場合、Kernel#requireは、オンデマンドでgemをロードできる独自のものに置き換えられます。
Require 'x'を呼び出すと、次のようになります。
ファイルが既存のRuby loadpathからロードできる場合、そうです。
それ以外の場合、インストールされたgemは一致するファイルを検索します。 gem 'y'で見つかった場合、そのgemがアクティブ化されます(ロードパスに追加されます)。
通常、そのファイルが既にロードされている場合はfalseを返す機能が必要です。
これが必要な理由を理解するには、 Kernel#require のドキュメントを参照してください。
以前の(そして正解)への追加として:Ruby 1.9以降はRubyGemsが組み込まれているため、実際にrequire 'rubygems'
。 ここにソース