作为大型 Rails 项目的一部分,我开发了代码。现在我想将它提取为一个独立的脚本,独立于 Rails 与社区共享。
这是我的第一个 gem,包括 Active Support 在内的使用日期函数和变形作为相对较小的 gem 的一部分可能有点过头了。
什么是最好的解决方案?
作为大型 Rails 项目的一部分,我开发了代码。现在我想将它提取为一个独立的脚本,独立于 Rails 与社区共享。
这是我的第一个 gem,包括 Active Support 在内的使用日期函数和变形作为相对较小的 gem 的一部分可能有点过头了。
什么是最好的解决方案?
ActiveSupport 不久前进行了重构,可以非常方便地选择您想要的功能。
查看核心扩展页面了解更多信息。
我认为对于一个认真的 Ruby 开发人员来说,已经安装了 Rails 及其组件是很常见的。只是不要坚持使用特定版本的 ActiveSupport。指定他们开始做核心扩展的版本作为你需要的最低限度,它会很高兴。
这是一个非常主观的电话。虽然 ActiveSupport 确实提供了许多有用的日期操作方法,包括它只是因为它是极其繁重的,并且当包含在不期望它的项目中时可能会导致绝对混乱。如果启用某些功能,例如自动加载系统,可以require
以戏剧性和意想不到的方式改变工作方式以及处理丢失类的方式。
如果您正在创建一个可能会与 Rails 或 ActiveSupport 配对的项目,那么这可能没什么大不了的。如果这种情况很少发生,您可能希望简单地在您自己的模块中重新实现日期方法,以便没有依赖关系。
请记住,ActiveSupport 对许多核心类进行了重大的重新装饰,因此将其强加于使用您的 gem 的人可能会使您的 gem 成为一个相当不守规矩的客人。
没有什么比陷入依赖地狱更烦人的了,其中一个人无法使用比 X 更新的 ActiveSupport,而另一个人无法使用这么旧的版本,这意味着根本没有单一版本可以工作。
只需查看 ActiveSupport 的源代码 (https://github.com/rails/rails/tree/master/activesupport) 并提取您需要的类和/或方法。