Подтвердить что ты не робот

Требуют "рубигемы"

Я видел много примеров кода Ruby с этой строкой (например, http://www.sinatrarb.com/). Для чего это необходимо?

# require 'rubygems'
require 'sinatra'
get '/hi' do
  "Hello world!"
end

Во всех случаях код работает без этой строки.

4b9b3361

Ответ 1

Это часто бывает излишним. Это позволит вам потребовать конкретные версии конкретных драгоценных камней, но с помощью команды gem.

http://guides.rubygems.org/patterns/#requiring_rubygems

Ответ 2

require 'rubygems' отрегулирует Ruby loadpath, позволяя вам успешно использовать драгоценные камни, установленные вами через rubygems, без получения LoadError: no such file to load -- sinatra.

Из документации rubygems-1.3.6:

Когда требуется RubyGems, ядро ​​# require заменяется нашим собственным который способен загружать драгоценные камни по требованию.

Когда вы вызываете require 'x', это то, что происходит:

  • Если файл можно загрузить из существующего пути загрузки Ruby, он есть.

  • В противном случае, в найденных драгоценных камнях выполняется поиск файла, который Матчи. Если он найден в gem 'y', этот жемчуг активируется (добавлен в путь загрузки).

Нормальный требует функции возврата false, если этот файл уже загружен.

См. документацию для Ядро # требуется, чтобы понять, почему это необходимо.

Ответ 3

В дополнение к предыдущим (и правильным ответам): Ruby 1.9 и более новое судно с встроенным RubyGems, поэтому нет необходимости в require 'rubygems'. Источник здесь