Ответ 1
Я думаю, что это довольно много. По умолчанию Rubygems добавит каталог lib в путь загрузки, но вы можете нажать любой каталог, который вы хотите на него, используя переменную $:. то есть.
$:.push File.expand_path(File.dirname(__FILE__) + '/../surfcompstuff')
Это означает, что, когда вы говорите, surfer.rb
в этом каталоге, вы можете require "surfer"
в любом месте, и файл будет найден.
Кроме того, как правило, классы и синглеты получают файл, а модули получают каталог. Например, если у вас есть модуль LolCatz
и класс LolCatz::Moar
, который будет выглядеть так:
lib/
appname.rb
lolcatz/
moar.rb
Вот почему есть папка lib/appname, потому что большинство библиотек находятся в пространстве имен appname
.
Кроме того, если вы попробуете запустить команду newgem --simple [projectname]
, которая быстро сгенерирует эшафот для вас только с минимальными требованиями для проекта Ruby (и, в добавок, Ruby Gem). Есть другие инструменты, которые делают это, я знаю, но newgem довольно распространен. Обычно я избавляюсь от файла TODO и всего материала script.