cost 127 ms
Ruby DSL - 在块上下文中调用用户提供的方法 - Ruby DSL - invoking user-provided methods within block context

我的Ruby DSL的用户希望能够添加其他方法并在任意块的上下文中调用它们,例如: 在此示例中,“override”是使用instance_eval调用的配置对象的方法。 有没有办法强制在配置块的上下文中执行任何方法调用,以便例如可以解析并执行'覆盖'? [编辑] 所以 ...

深入了解Ruby class_eval和instance_eval - Deep into Ruby class_eval and instance_eval

在诸如定义方法之类的情况下, class_eval和instance_eval是完全可以预测的。 我也了解类的实例和类的单例(也称为本征类)之间的区别。 但 我无法弄清楚像下面这样的唯一事情:假设出于某种目的,我们希望使现有类成为单例。 在两种情况下都 是的,我的意 ...

如何重构多次使用“ instance_exec”的代码? - How do I refactor code that uses `instance_exec` several times?

我正在上一个使用Prawn gem生成PDF的类。 我有一些类似的方法。 所有这些都从同一行开始。 这是代码: 有没有一种方法可以避免在每个方法中使用@output.instance_exec并使用类似块的方法? 我尝试过,但无法正常工作。 我可以做这样的事情吗? 我应 ...

带有instance_eval的Ruby块范围 - Ruby Block Scope with instance_eval

我对Ruby块和触发器的理解是它们都是闭包。 现在我已经看到它与instance_eval一起使用,我有点困惑。 什么是魔术酱,在查看裸机时的工作量不足,与使用instance_eval相比,它改变了块在大多数常见用途下的作用范围? 以下是您可以在IRB中转储以查看我的意思的示例。 ...

Instance_eval无权访问模块中的类 - Instance_eval doesn't have access to class in module

我遇到了instance_eval和模块包含的问题。 请看下面的代码: 当我运行此代码时,我得到了 我知道它与绑定以及方法和对象如何绑定到类有关。 我无法理解的是,为什么我在A访问C ,但在我评估block时却没有。 我希望它们在同一范围内。 谢谢! ...

Ruby:正确使用Lambdas - Ruby: Properly using Lambdas

在开始之前,我尝试摆弄instance_eval和单例方法无济于事。 我将提出我对问题的“最佳”尝试。 我正在尝试执行以下操作: 上述调用无法更改。 可以更改的是规则的定义方式: 我不确定如何获取lambda代码块以获取某些值。 任何帮助或指向正确方向将不胜感激! ...

module_eval / class_eval / instance_eval如何计算行号 - How does module_eval / class_eval / instance_eval counts the line numbers

我发现传递给class_eval的line_number, module_eval和instance_eval与错误报告的行号不匹配。 ruby-doc没有解释此行为,它说:(以instance_eval为例) 可选的第二和第三个参数提供了在报告编译错误时使用的文件名和起始行号。 ...

猴子在有限范围内修补内置的红宝石类 - Monkey patching built-in ruby classes in limited scopes

我正在开发内部Ruby DSL,并且要使其看起来尽可能漂亮,我需要对Symbol类进行猴子补丁并添加一些运算符。 我想对执行此操作负责,并希望将补丁的范围和生存期限制为特定的代码块。 是否有执行此操作的标准模式? 这是一些伪代码来显示我的想法: 结束 ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM