Ruby on rails 为什么不将ActiveSupport核心扩展添加为模块?

Ruby on rails 为什么不将ActiveSupport核心扩展添加为模块?,ruby-on-rails,ruby,activesupport,Ruby On Rails,Ruby,Activesupport,我正在阅读ActiveSupport core_ext源代码,看到它直接打开并扩展了core ruby类,例如: . 这是否使我们更难知道某些方法是来自activesupport还是由ruby本身提供的(例如通过method#owner) 为什么它不使用诸如预加/包含模块之类的东西来增加功能?例如: 模块StringConversionExtension def to_时间 #一些实现 结束 结束 String.prepend(StringExtension) 是否有任何历史/性能原因导致现在

我正在阅读ActiveSupport core_ext源代码,看到它直接打开并扩展了core ruby类,例如: . 这是否使我们更难知道某些方法是来自activesupport还是由ruby本身提供的(例如通过
method#owner

为什么它不使用诸如预加/包含模块之类的东西来增加功能?例如:

模块StringConversionExtension
def to_时间
#一些实现
结束
结束
String.prepend(StringExtension)
是否有任何历史/性能原因导致现在的实施

为什么它不使用诸如预加/包含模块之类的东西来增加功能?例如:

可能是:

  • 尽量减少Rails中的代码量(因为您建议的方法有点冗长),或者
  • 尽量减少现有方法/常量/模块以及核心类中的方法/常量/模块数量,因为在您提出的方法中,核心字符串类将具有新方法,并且现在将包括StringExtensions模块
为什么它不使用诸如预加/包含模块之类的东西来增加功能?例如:

可能是:

  • 尽量减少Rails中的代码量(因为您建议的方法有点冗长),或者
  • 尽量减少现有方法/常量/模块以及核心类中的方法/常量/模块数量,因为在您提出的方法中,核心字符串类将具有新方法,并且现在将包括StringExtensions模块

我只想指出,
方法#源位置
会告诉你它是否来自ActiveSupport,即使
所有者
没有。我忘了这一点!但问题仍然存在,为什么ActiveSupport不通过预先添加/包括模块来扩展核心类?只想指出,
Method\source\u location
将告诉您它是否来自ActiveSupport,即使
owner
不来自。我忘了这一点!但问题仍然存在,为什么ActiveSupport不通过预先添加/包含模块来扩展核心类?