У меня никогда не было проблем с базовой структурой дерева гемов, а именно
- bin (исполняемые файлы)
- lib (исходный код)
- test
... потому что я всегда разрабатывал гем как библиотеки.Однако недавно я начал разрабатывать приложение, которое поставляется в виде гема.
В этом приложении есть файл runner.rb (lib / mygem / runner.rb), который предоставляет метод для запуска приложения.Приложение запускается из файла bin / mygem.
Теперь это беспокоит меня.«runner.rb» - это файл, специфичный для нашего приложения, он не является службой, API или каким-либо другим классом поддержки для повторного использования другими (для чего нужна библиотека, верно?), но его каталог" lib / mygem / runner.rb).
Я читал много определений, и библиотеки должны поддерживать приложение, а не be само приложение. Мы не говорим «это библиотека моего приложения», но «это исходный код моего приложения».
Итак, мой вопрос: почему мы помещаем библиотеки Иисходный код в той же папке?
Надеюсь, я четко изложил свою точку зрения, я уверен, что для этого есть веская причина, и мне было бы интересно услышать вашу мысль и прояснить это.
Спасибо, что прочитали это:)