【发布时间】:2011-02-06 15:27:24
【问题描述】:
【问题讨论】:
【问题讨论】:
Gem Packaging: Best Practices 提供了很多建议,其中包括
不要污染全局加载路径。理想情况下,您的lib 目录中只有foo.rb,而将所有其他文件放在lib/foo 中。
不要将require 文件使用__FILE__。
不要依赖加载路径之外的任何东西。文件夹的结构可能与原始版本不同。例如,不要使用类似
VERSION = ::File.read(::File.join(::File.dirname(FILE), "..", "..", "VERSION")).strip
不要在lib 内管理$LOAD_PATH。
提供一个VERSION 常量。
不要依赖红宝石。使用您的代码的人可能没有使用 rubygems,而是使用其他一些打包系统(或没有打包系统)。同样,不要在代码本身中提及版本依赖,或者rescue Gem::LoadError。
Rubygems dependencies. Please... 认为您不应该列出可选的运行时依赖项,并且应该将开发人员与运行时依赖项分开。
From my own experience: 如果不出意外,请尝试在本地构建和安装您的 gem,然后再将其发布到野外。它避免了牛皮纸袋的泄漏。
【讨论】: