Tag: eval

如何使用rails 3.2 erb中的eval在运行时执行存储在字符串中的视图代码?

我们要做的是将一大块erb代码存储在一个string ,然后在run time执行代码。 这是我们做的测试: 1. take out a chunk of the code from a working erb file and, 2. rewrite the erb file with eval. 以下是取出的erb代码块: # t()是国际化的翻译方法。 这是重写后的erb文件: 在重写之前, chunk of code在 之间。 现在变量code返回代码块的string , eval执行代码块。 但这是错误: (eval):1: syntax error, unexpected ‘<' (eval):4: syntax error, unexpected tIDENTIFIER, expecting $end ^ Extracted source (around line […]

在代码的eval之间维护局部变量

考虑以下Ruby代码: class Foo def bar; 42; end def run(code1,code2) binding.eval(code1,’c1′) binding.eval(code2,’c2′) end end Foo.new.run “x=bar ; px”, “px” 目的是动态评估一些代码 – 它创建局部变量 – 然后运行可以访问这些变量的其他代码。 结果是: c2:1:in `run’: undefined local variable or method `x’ for # (NameError) 请注意,上述内容仅在eval突变绑定时才有效,只有在修改现有局部变量时才会这样做,而不会创建新变量。 我不一定需要(或想要)每次运行来改变外部绑定,我只需要能够访问先前的绑定以进行后续的代码评估。 我如何评估两个代码块并在它们之间维护局部变量? 对于好奇的,这个实际应用程序是一个自定义工具 ,可以执行脚本文件,然后放入REPL。 我希望REPL能够访问脚本文件创建的所有局部变量。

Ruby:解析,替换和评估字符串公式

我正在为朋友的心理调查项目创建一个简单的Ruby on Rails调查应用程序。 所以我们有调查,每个调查都有一堆问题,每个问题都有参与者可以选择的选项之一。 没什么好激动的。 其中一个有趣的方面是每个答案选项都有一个与之相关的分数值。 因此,对于每个调查,需要根据这些值计算总分。 现在,我的想法是,不是硬编码计算,而是允许用户添加一个公式,通过该公式计算总调查分数。 示例公式: “Q1 + Q2 + Q3” “(Q1 + Q2 + Q3) / 3” “(10 – Q1) + Q2 + (Q3 * 2)” 所以只是基本的数学(为了清晰起见,附加一些括号)。 我们的想法是保持公式非常简单,这样任何拥有基本数学的人都可以输入它们,而无需解析某些奇特的语法。 我的想法是采用任何给定的公式,并用基于参与者选择的分数值替换Q1,Q2等占位符。 然后eval()新形成的字符串。 像这样的东西: f = “(Q1 + Q2 + Q3) / 2” # some crazy formula for this survey values = {:Q1 => […]

Ruby 1.9.3使用eval定义var

我在Ruby中编写类似REPL的东西,我需要在运行中定义变量。 我想通了我应该使用eval,但这里是从irb会话中摘录来测试它的。 在1.9.3(那将在1.8中工作) > eval ‘a = 3′ => 3 > a => NameError: undefined local variable or method `a’ for main:Object 他们将1.9改为: > eval ‘a = 3’ => 3 > eval ‘a’ => 3 所以似乎从1.9开始改变它。 如何使用eval(或类似的东西)在1.9.3中定义变量?

在ruby中不使用eval将字符串转换为类名?

我有这样的事情: string = “Post” 我想将字符串转换为类名文字。 我使用这样的eval来转换字符串: eval(string) #=> Post 作为一名javaScript开发人员,我试图避免使用eval。 在Ruby中有更好的方法吗? 或者正在使用eval处理这个的首选方式?