Я думаю, що це дуже багато місця. За замовчуванням 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). Є й інші інструменти, які роблять це, я знаю, але ньюджем досить поширений. Зазвичай я позбуваюсь файлу TODO та всіх сценаріїв.