已有问题及答案how to writerubygem,但是在编写 rubygem 时应该避免什么?什么会给使用您的 rubygem 的人带来问题?
宝石包装:最佳实践给出了很多建议,其中一些包括
不要污染全局加载路径。理想情况下,只有foo.rb
在你的lib
目录,并将所有其他文件放入lib/foo
.
Don't require
文件使用__FILE__
.
-
不要依赖加载路径之外的任何东西。文件夹的结构可能与原始版本不同。例如,不要使用类似的东西
版本 = ::File.read(::File.join(::File.dirname(FILE)、“..”、“..”、“版本”)).strip
不管理$LOAD_PATH
within lib
.
提供一个VERSION
持续的。
不要依赖红宝石。使用您的代码的人可能没有使用 rubygems,而是使用其他一些打包系统(或没有打包系统)。同样,不要在代码本身中提及版本依赖性,或者rescue Gem::LoadError
.
Rubygems 依赖项。请...认为您不应该列出可选的运行时依赖项,并且应该将开发人员与运行时依赖项分开。
从我自己的经验来看:如果没有别的事,请尝试在本地构建和安装您的 gem,然后再将其发布到野外。它避免了牛皮纸袋的释放。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)