问题标签 [class-eval]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
684 浏览

ruby - 这个 ruby​​ 自定义访问器如何工作

因此,class_eval 中的以下方法会为运行时定义的属性动态创建访问器。例如,它可以用于创建具有从配置文件中读取的属性的配置对象(直到运行时才知道)。除了 else 分支,我理解所有这些。如果我是正确的,如果 *val 中传递了一个值,则 else 分支返回属性值 (val[0])。但是,如果在 *var 中传递了多个值,我希望它的编写方式返回一个数组 (val)。特别是,如果我有以下内容:

然后通过阅读我期望的代码@value to be [=,5]。但是@value返回 5 而不是数组 [=,5]。这怎么可能?

0 投票
1 回答
1626 浏览

ruby - 试图了解 class_eval 的用法

我正在使用rails-settings gem,我试图了解如何将函数添加到 ActiveRecord 类(我正在为纸牌游戏构建自己的库),我注意到这个 gem 使用了 Meta-programming 之一将函数添加到 ActiveRecord::Base 类的技术(我远离 ruby​​ 的元编程大师,但我正在努力学习它)

我不明白的是为什么他在 ActiveRecord::Base 上使用 class_eval,如果他只是打开 ActiveRecord::Base 类并定义函数不是更容易吗?特别是块中没有任何动态(我所说的动态是指当您对包含变量的字符串执行 class_eval 或 instance_eval 时)

像这样的东西:

我知道第二个class_eval(在def设置之前)是在每个“has_settings”的类上动态定义函数对吗?同样的问题,我认为他可以使用“def self.settings”而不是“class_eval .... def settings”,不是吗?

0 投票
2 回答
1128 浏览

ruby - class_eval 和 class << className 有什么区别?

我是 Ruby 初学者。我发现这两者非常相似(在输出中),但我无法理解以下上下文中的差异。例如,我有一堂课

并且可以像这样扩展

也像这样

我应该什么时候使用<<,什么时候使用class_eval

0 投票
2 回答
606 浏览

ruby - 您如何临时“class_eval”进行测试?

是否可以暂时将某些方法应用于类进行测试?我希望能够根据多种应用方式来运行规范。虽然我可以制作一堆具有不同设置的夹具,但我发现class_eval在测试中只使用模型更容易。例如:

然后在另一个上下文块中:

但是最后一个上下文块的问题是它有一个修改的类(在上面的上下文块中修改)。之后可以重新上课class_eval吗?如何?

谢谢!

0 投票
2 回答
983 浏览

ruby - Ruby 1.9.2 class_eval 变量

Settingslogic fork中允许数组作为源,在 ruby​​ 1.8.7 中一切正常,但在 ruby​​ 1.9.2 中出现错误。问题出在这部分代码中:

看起来 #{} 以某种奇怪的方式进行评估,“#{@section}”似乎是一个数组,而不是一个字符串。有人可以解释一下吗?

错误跟踪:

谢谢你的帮助

0 投票
1 回答
559 浏览

ruby - class_eval 问题 Ruby

如果调用的方法以“加号”开头,我正在尝试使用 class_eval 以元编程方式创建方法。但是,我无法将 class_eval 的实际语法放在一起

当调用 plus10(或任何数字)时,新创建的方法应该将该数字添加到正在调用的整数中,并产生新的总和。

谢谢

0 投票
1 回答
1366 浏览

ruby-on-rails - Ruby/Rails:class_eval 不想评估此代码

为了为 Omniauth 生成模拟,我将此方法添加到config/environments/development.rb

然后我调用同一个文件:

但我得到:

0 投票
1 回答
1159 浏览

ruby - 继承类中的 ruby​​ method_alias

我正在深入研究 ruby​​ 元编程并有下一个问题。例子:

因此,当 mixin 使用 2 次时,会导致错误。解决此类问题的最佳方法是什么?如何确定混合存在并在新混合之前将其删除

0 投票
1 回答
6011 浏览

ruby - `class_eval` 字符串中的变量范围是什么?

class_eval用来编写要在当前类的上下文下执行的代码。在下面的代码中,我想为属性值的变化添加一个计数器。

我的理解class_eval是它在运行时类的上下文中评估块- 在我的例子中,在class Foo. 我希望上面的代码运行类似于

但是上面的代码导致错误说,错误是由@count += 1. 我不知道为什么@countnil:NilClass它的超级?

另一方面,@selman 提供了一个将@count赋值放在实例方法中的解决方案,并且它可以工作。

为什么更改变量范围有效?如何class_eval执行其后面的字符串?

0 投票
3 回答
18906 浏览

ruby - Ruby - 使用 class_eval 定义方法

我正在上斯坦福大学的 SaaS 课程,试图完成这项作业的第 5 部分

我很难掌握这个概念,这就是我试图做的:

我可能做错了各种各样的事情,阅读了关于元编程的 The Book Of Ruby 章节,但我仍然不明白,有人可以帮助我理解这一点吗?