有写rubygems的问题
有关如何 编写 rubygems的答案存在疑问,但在编写rubygem时应该避免什么? 使用rubygem的人会有什么问题?
gem包装:最佳实践提供了很多建议,其中一些包括
-
不要污染全局加载路径。 理想情况下,只在
lib
目录中有foo.rb
,并将所有其他文件放在lib/foo
。 -
不
require
使用__FILE__
文件。 -
不要依赖负载路径之外的任何东西。 文件夹可能与原始版本的结构不同。 例如,不要使用类似的东西
VERSION = :: File.read(:: File.join(:: File.dirname( FILE ),“..”,“..”,“VERSION”))。strip
-
不要在
lib
管理$LOAD_PATH
。 -
提供
VERSION
常量。 -
不要依赖rubygems。 使用您的代码的人可能没有使用rubygems,而是使用其他一些包装系统(或没有包装系统)。 同样,不要在代码本身中提及版本依赖关系,也不要
rescue Gem::LoadError
。
Rubygems依赖项。 请… …认为您不应列出可选的运行时依赖项,并应将开发人员与运行时依赖项分开。
根据我自己的经验 :如果没有别的,尝试在将它放入野外之前在本地构建和安装你的gem。 它避免了棕色纸袋的发布。