猴子在有限的范围内修补内置的ruby类
发布时间:2020-12-17 03:22:09 所属栏目:百科 来源:网络整理
导读:我正在研究一个内部的 Ruby DSL并让它看起来尽可能漂亮,我需要修补Symbol类并添加一些运算符.我想对我如何做到这一点负责,并希望将补丁的范围和生命周期限制在特定的代码块中.这样做有标准模式吗?这里有一些伪代码来展示我的想法: class SomeContext def s
我正在研究一个内部的
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行李箱中,但可能会在2.0之前恢复
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |