在非Rails宝石中使用ActiveSupport被认为是一种好习惯吗?

时间:2012-11-30 20:42:50

标签: ruby rubygems activesupport

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

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

最佳解决方案是什么?

3 个答案:

答案 0 :(得分:4)

ActiveSupport在一段时间后被重构,以便选择所需的功能非常方便。

查看Core-Extensions页面了解详情。

我认为一个认真的Ruby开发人员已经安装了Rails及其组件是很常见的。只是不要坚持使用特定版本的ActiveSupport。指定他们开始执行核心扩展的版本至少是您需要的,并且它会很高兴。

答案 1 :(得分:4)

这是一个非常主观的呼吁。虽然ActiveSupport确实提供了许多有用的日期操作方法,但仅仅因为它非常繁重,并且当包含在不期望它的项目中时会导致绝对的混乱。某些功能(如果已启用)(如自动加载程序系统)可以以戏剧性和意外的方式更改require的工作方式以及如何处理缺少的类。

如果您正在创建一个可能的项目,无论如何都要与Rails或ActiveSupport配对,这可能不是什么大问题。如果很少出现这种情况,您可能只想在自己的模块中重新实现日期方法,以便没有依赖。

请记住,ActiveSupport会对许多核心类进行大量重新装饰,因此对使用宝石的人施加压力可能会让您的宝石成为一个相当不守规矩的客户。

还有一些事情比陷入依赖性地狱更令人烦恼,因为一个人不能使用比X更新的ActiveSupport而另一个人不能使用那个旧的版本,这意味着没有任何单一版本可以使用。

答案 2 :(得分:0)

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