Почему каталог "lib" на rubygem не называется "src"? - PullRequest
0 голосов
/ 25 февраля 2011

У меня никогда не было проблем с базовой структурой дерева гемов, а именно

  • bin (исполняемые файлы)
  • lib (исходный код)
  • test

... потому что я всегда разрабатывал гем как библиотеки.Однако недавно я начал разрабатывать приложение, которое поставляется в виде гема.

В этом приложении есть файл runner.rb (lib / mygem / runner.rb), который предоставляет метод для запуска приложения.Приложение запускается из файла bin / mygem.

Теперь это беспокоит меня.«runner.rb» - это файл, специфичный для нашего приложения, он не является службой, API или каким-либо другим классом поддержки для повторного использования другими (для чего нужна библиотека, верно?), но его каталог" lib / mygem / runner.rb).

Я читал много определений, и библиотеки должны поддерживать приложение, а не be само приложение. Мы не говорим «это библиотека моего приложения», но «это исходный код моего приложения».

Итак, мой вопрос: почему мы помещаем библиотеки Иисходный код в той же папке?

Надеюсь, я четко изложил свою точку зрения, я уверен, что для этого есть веская причина, и мне было бы интересно услышать вашу мысль и прояснить это.

Спасибо, что прочитали это:)

1 Ответ

0 голосов
/ 08 марта 2011

После дальнейших исследований выясняется, что 'lib /' называется 'lib /', потому что она содержит только определения.

'bin' - это сценарий, который выполняется, как функция 'main'.Поскольку он исполняется, в нем не должно быть логики приложения, в противном случае его нелегко проверить.

Таким образом, вся логика приложения принадлежит папке библиотеки вашего приложения.Единственная задача файла bin (основного) - создать экземпляр класса приложения и запустить его.

...