问题标签 [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.
ruby - 这个 ruby 自定义访问器如何工作
因此,class_eval 中的以下方法会为运行时定义的属性动态创建访问器。例如,它可以用于创建具有从配置文件中读取的属性的配置对象(直到运行时才知道)。除了 else 分支,我理解所有这些。如果我是正确的,如果 *val 中传递了一个值,则 else 分支返回属性值 (val[0])。但是,如果在 *var 中传递了多个值,我希望它的编写方式返回一个数组 (val)。特别是,如果我有以下内容:
然后通过阅读我期望的代码@value to be [=,5]
。但是@value
返回 5 而不是数组 [=,5]。这怎么可能?
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”,不是吗?
ruby - class_eval 和 class << className 有什么区别?
我是 Ruby 初学者。我发现这两者非常相似(在输出中),但我无法理解以下上下文中的差异。例如,我有一堂课
并且可以像这样扩展
也像这样
我应该什么时候使用<<
,什么时候使用class_eval
?
ruby - 您如何临时“class_eval”进行测试?
是否可以暂时将某些方法应用于类进行测试?我希望能够根据多种应用方式来运行规范。虽然我可以制作一堆具有不同设置的夹具,但我发现class_eval
在测试中只使用模型更容易。例如:
然后在另一个上下文块中:
但是最后一个上下文块的问题是它有一个修改的类(在上面的上下文块中修改)。之后可以重新上课class_eval
吗?如何?
谢谢!
ruby - Ruby 1.9.2 class_eval 变量
在Settingslogic fork中允许数组作为源,在 ruby 1.8.7 中一切正常,但在 ruby 1.9.2 中出现错误。问题出在这部分代码中:
看起来 #{} 以某种奇怪的方式进行评估,“#{@section}”似乎是一个数组,而不是一个字符串。有人可以解释一下吗?
错误跟踪:
谢谢你的帮助
ruby - class_eval 问题 Ruby
如果调用的方法以“加号”开头,我正在尝试使用 class_eval 以元编程方式创建方法。但是,我无法将 class_eval 的实际语法放在一起
当调用 plus10(或任何数字)时,新创建的方法应该将该数字添加到正在调用的整数中,并产生新的总和。
谢谢
ruby-on-rails - Ruby/Rails:class_eval 不想评估此代码
为了为 Omniauth 生成模拟,我将此方法添加到config/environments/development.rb
然后我调用同一个文件:
但我得到:
ruby - 继承类中的 ruby method_alias
我正在深入研究 ruby 元编程并有下一个问题。例子:
因此,当 mixin 使用 2 次时,会导致错误。解决此类问题的最佳方法是什么?如何确定混合存在并在新混合之前将其删除
ruby - `class_eval` 字符串中的变量范围是什么?
我class_eval
用来编写要在当前类的上下文下执行的代码。在下面的代码中,我想为属性值的变化添加一个计数器。
我的理解class_eval
是它在运行时类的上下文中评估块- 在我的例子中,在class Foo
. 我希望上面的代码运行类似于:
但是上面的代码导致错误说,错误是由@count += 1
. 我不知道为什么@count
有nil:NilClass
它的超级?
另一方面,@selman 提供了一个将@count
赋值放在实例方法中的解决方案,并且它可以工作。
为什么更改变量范围有效?如何class_eval
执行其后面的字符串?
ruby - Ruby - 使用 class_eval 定义方法
我正在上斯坦福大学的 SaaS 课程,试图完成这项作业的第 5 部分
我很难掌握这个概念,这就是我试图做的:
我可能做错了各种各样的事情,阅读了关于元编程的 The Book Of Ruby 章节,但我仍然不明白,有人可以帮助我理解这一点吗?