require 'rubygems'
отрегулирует Ruby loadpath
, позволяя вам успешно запрашивать камни, установленные вами через rubygems, без получения LoadError: no such file to load -- sinatra
.
Из документации по rubygems-1.3.6:
Когда требуется RubyGems, Kernel # require заменяется на наш собственный
который способен загружать драгоценные камни по требованию.
Когда вы звоните требовать 'x', вот что происходит:
Если файл может быть загружен из существующего пути загрузки Ruby, он
есть.
В противном случае в установленных гемах ищется файл, который
Матчи. Если он найден в gem 'y', этот камень активируется
(добавлено в путь загрузки).
Обычная функция, требующая возврата false, если этот файл
уже загружен, сохраняется.
См. Документацию для Ядро # требуется , чтобы понять, почему это необходимо.