gpt4 book ai didi

ruby - Monkey 在有限范围内修补内置的 ruby​​ 类

转载 作者:数据小太阳 更新时间:2023-10-29 07:15:23 24 4
gpt4 key购买 nike

我正在开发内部 Ruby DSL,为了让它看起来尽可能漂亮,我需要猴子修补 Symbol 类并添加一些运算符。我想对我如何做到这一点负责,并希望将补丁的范围和生命周期限制在特定的代码块内。有这样做的标准模式吗?下面是一些伪代码来展示我的想法:

class SomeContext
def self.monkey_patch_region(&block)
context = SomeContext.new
context.monkey_patch_Symbol
context.instance_eval(&block)
context.unmonkey_patch_Symbol
end

# magical method
def monkey_patch_Symbol
#...
end

# another magical method
def unmonkey_patch_Symbol
#...
end

结束

最佳答案

我相信,您正在寻找 ruby refinements .该功能已登陆 ruby​​ trunk,但可能会在 2.0 之前恢复

关于ruby - Monkey 在有限范围内修补内置的 ruby​​ 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11920335/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com