我正在开发一个 Gem,我认为它不仅对我有用,而且对更多人有用。我面临的一个问题是我需要合并嵌套哈希。我发现 this useful Gist 可以实现这一点,但现在我想知道在 Gem 中像这样修改 Hash# 是否可以?
我确信有一个社区“标准”或最佳实践接受或拒绝这种代码,所以我转向 SO 寻求指导。
谢谢你。
最佳答案
如有疑问,只需将 Hash
子类化并将模块包含在您的子类中。当您重写方法或显着改变行为时,您尤其应该这样做。
但我不明白为什么你不应该只修改 Hash
类。例如,Rails 严格地扩展了 Core 类,我从未听过有人提示。你可以看看 Rails 的 activesupport
如何扩展核心类:
https://github.com/rails/rails/tree/master/activesupport/lib/active_support/core_ext
只要确保不要破坏现有行为,这样您的 gem 用户就不会遇到不需要的副作用。
关于ruby - 修改 gem 中的核心类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11428847/