3

作为大型 Rails 项目的一部分,我开发了代码。现在我想将它提取为一个独立的脚本,独立于 Rails 与社区共享。

这是我的第一个 gem,包括 Active Support 在内的使用日期函数和变形作为相对较小的 gem 的一部分可能有点过头了。

什么是最好的解决方案?

4

3 回答 3

4

ActiveSupport 不久前进行了重构,可以非常方便地选择您想要的功能。

查看核心扩展页面了解更多信息。

我认为对于一个认真的 Ruby 开发人员来说,已经安装了 Rails 及其组件是很常见的。只是不要坚持使用特定版本的 ActiveSupport。指定他们开始做核心扩展的版本作为你需要的最低限度,它会很高兴。

于 2012-11-30T20:54:36.623 回答
4

这是一个非常主观的电话。虽然 ActiveSupport 确实提供了许多有用的日期操作方法,包括它只是因为它是极其繁重的,并且当包含在不期望它的项目中时可能会导致绝对混乱。如果启用某些功能,例如自动加载系统,可以require以戏剧性和意想不到的方式改变工作方式以及处理丢失类的方式。

如果您正在创建一个可能会与 Rails 或 ActiveSupport 配对的项目,那么这可能没什么大不了的。如果这种情况很少发生,您可能希望简单地在您自己的模块中重新实现日期方法,以便没有依赖关系。

请记住,ActiveSupport 对许多核心类进行了重大的重新装饰,因此将其强加于使用您的 gem 的人可能会使您的 gem 成为一个相当不守规矩的客人。

没有什么比陷入依赖地狱更烦人的了,其中一个人无法使用比 X 更新的 ActiveSupport,而另一个人无法使用这么旧的版本,这意味着根本没有单一版本可以工作。

于 2012-11-30T20:59:22.007 回答
0

只需查看 ActiveSupport 的源代码 (https://github.com/rails/rails/tree/master/activesupport) 并提取您需要的类和/或方法。

于 2012-11-30T20:46:35.193 回答