Я видел много примеров кода Ruby с этой строкой (например, http://www.sinatrarb.com/). Для чего это необходимо?
# require 'rubygems'
require 'sinatra'
get '/hi' do
"Hello world!"
end
Во всех случаях код работает без этой строки.
Я видел много примеров кода Ruby с этой строкой (например, http://www.sinatrarb.com/). Для чего это необходимо?
# require 'rubygems'
require 'sinatra'
get '/hi' do
"Hello world!"
end
Во всех случаях код работает без этой строки.
Это часто бывает излишним. Это позволит вам потребовать конкретные версии конкретных драгоценных камней, но с помощью команды gem
.
require 'rubygems'
отрегулирует Ruby loadpath
, позволяя вам успешно использовать драгоценные камни, установленные вами через rubygems, без получения LoadError: no such file to load -- sinatra
.
Из документации rubygems-1.3.6:
Когда требуется RubyGems, ядро # require заменяется нашим собственным который способен загружать драгоценные камни по требованию.
Когда вы вызываете require 'x', это то, что происходит:
Если файл можно загрузить из существующего пути загрузки Ruby, он есть.
В противном случае, в найденных драгоценных камнях выполняется поиск файла, который Матчи. Если он найден в gem 'y', этот жемчуг активируется (добавлен в путь загрузки).
Нормальный требует функции возврата false, если этот файл уже загружен.
См. документацию для Ядро # требуется, чтобы понять, почему это необходимо.
В дополнение к предыдущим (и правильным ответам): Ruby 1.9 и более новое судно с встроенным RubyGems, поэтому нет необходимости в require 'rubygems'
. Источник здесь