2011-02-25 29 views
0

我從來沒有與基本寶石樹結構的任何問題,即爲什麼rubygem的「lib」目錄不叫「src」?

  • 斌(可執行文件)
  • LIB(源代碼)
  • 測試

...因爲我我們一直把寶石當作圖書館。不過,我最近開始開發一個作爲寶石出貨的應用程序。

此應用程序有一個「runner.rb」文件(lib/mygem/runner.rb),它提供了一種運行應用程序的方法。該應用程序從bin/mygem文件運行。

現在這困擾我。 「runner.rb」是一個特定於我們的應用程序的文件,它不是一個服務,API或任何類型的其他重用支持類(這是什麼庫應該是,對吧?),但其目錄是「LIB /mygem/runner.rb)。

我已經讀了很多的定義,和庫應該是支持的應用程序,而不是應用程序本身。我們不說「這是我的應用程序庫」,但「這是我的應用程序的源代碼」。

所以我的問題是,爲什麼我們把庫和源代碼在同一個文件夾中?

我希望我明確表達了自己的觀點,我確信這背後有一個很好的理由,並且我很樂意聽取您的想法並澄清這一點。

感謝您閱讀這篇:)

+0

我以某種方式收集信息來回答我自己的問題,你可以查看它:http://semweb.tumblr.com/post/3532997788/lib-folder-is-a-misnomer-when-creating-ruby -gems – ms123 2011-02-27 01:25:39

回答

0

進一步調查後,原來「的lib /」被稱爲「的lib /」,因爲它僅包含定義。

'bin'是一個被執行的腳本,像'main'函數一樣。由於它被執行,所以沒有應用程序邏輯,否則它不容易測試。

因此,所有的應用程序邏輯都屬於您應用程序的庫文件夾。 bin(main)文件的唯一任務是實例化應用程序的runner類並運行它。