已經有上how到write RubyGems的答案的問題,但你應該寫一rubygem避免?什麼會給使用你的rubygem的人帶來問題?陷阱寫的RubyGems
5
A
回答
5
Gem Packaging: Best Practices給出了很多建議,其中包括一些
不污染全局負載路徑。理想情況下,您的
lib
目錄中只有foo.rb
,並將所有其他文件放入lib/foo
。不要使用
__FILE__
不require
文件。不要依賴加載路徑以外的任何東西。文件夾可能與原始版本中的結構不同。例如,不要使用類似於
VERSION = :: File.read(:: File.join(:: File.dirname(FILE),「..」,「..」,「VERSION 「))。strip
不要在
lib
內管理$LOAD_PATH
。提供
VERSION
常數。不要依賴rubygems。使用你的代碼的人可能不會使用rubygems,而是使用其他一些包裝系統(或者沒有包裝系統)。同樣,不要在代碼本身中提到版本依賴關係,或者
rescue Gem::LoadError
。
Rubygems dependencies. Please...認爲你不應該列出可選的運行時依賴,並應自運行時依賴分開開發商。
From my own experience:如果不出意外,嘗試建立和釋放到野外之前在本地安裝您的寶石。它避免了牛皮紙袋的泄漏。
相關問題
- 1. 從MS Access的空陷阱的陷阱
- 2. 陷阱
- 3. 軟件陷阱vs硬件陷阱
- 4. Java JIT陷阱
- 5. 春季陷阱
- 6. SetTimer()陷阱
- 7. 形式 - 陷阱
- 8. PyThreadState_SetAsyncExc陷阱?
- 9. C++程序員有哪些常見的Java陷阱/陷阱?
- 10. .NET中ClickOnce /智能客戶端部署的陷阱/陷阱
- 11. GTK#常見陷阱
- 12. 調用ToString()陷阱
- 13. 安卓:AlarmManager陷阱
- 14. 陷阱退格鍵
- 15. rmi回調陷阱?
- 16. 陷阱WM_SETFOCUS消息
- 17. Singleton Design Pattern:陷阱
- 18. MySQL事務陷阱
- 19. C++模板陷阱
- 20. 陷阱os.Exit在golang
- 21. 如何在陷阱代碼中再次設置bash陷阱?
- 22. 澄清的bash陷阱
- 23. 中止陷阱6的malloc
- 24. 點擊IFRAME的陷阱
- 25. Unix上的SNMP陷阱
- 26. @Autowired和線程的陷阱
- 27. 遷移的Rails 2.3.5到Rails 3.xx的步驟,陷阱和陷阱
- 28. iPhone店面形象(陷阱?)
- 29. 擺好陷阱錯誤CMD
- 30. ValueConstraintError在pysnmp陷阱接收
絕對是一個很好的和正確的書面記錄,特別是所提到的「寶石包裝:最佳實踐」 – 2010-04-11 06:58:06
你的最後一點是非常重要的。它基本上可以被翻譯爲:「編寫Ruby Gems的一個重要問題不是編寫Gems,而是編寫庫。」 – 2010-04-11 08:38:16
@Jörg:非常像禪宗。 (「寶石包裝:最佳實踐」的最後一點,而不是「來自我自己的經驗」) – 2010-04-12 23:29:05