Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby的FuckItJS等价物_Ruby_Metaprogramming_Rubinius - Fatal编程技术网

Ruby的FuckItJS等价物

Ruby的FuckItJS等价物,ruby,metaprogramming,rubinius,Ruby,Metaprogramming,Rubinius,FuckItJS Javascript错误蒸汽压路机 FuckItJS使用最先进的技术确保您的javascript 无论编译器是否喜欢,代码都会运行 技术 通过一个被称为Eval-Rinse-Reload和Repeat的过程,FuckItJS 反复编译代码,检测错误并切片这些错误 脚本中的行。为了在如此激烈的过程中生存,FuckItJS 每次迭代后重新加载自身,允许OneError处理程序 捕捉您编写的代码中的每一个错误 我正在确定lib/my_file.rb中的哪个代码导致Rubinius出现

FuckItJS

Javascript错误蒸汽压路机

FuckItJS使用最先进的技术确保您的javascript 无论编译器是否喜欢,代码都会运行

技术

通过一个被称为Eval-Rinse-Reload和Repeat的过程,FuckItJS 反复编译代码,检测错误并切片这些错误 脚本中的行。为了在如此激烈的过程中生存,FuckItJS 每次迭代后重新加载自身,允许OneError处理程序 捕捉您编写的代码中的每一个错误

我正在确定
lib/my_file.rb
中的哪个代码导致Rubinius出现以下错误:

$ ruby lib/my_file.rb 
An exception occurred running lib/my_file.rb
    Error trying to compile /path/to/lib/my_file.rb (Rubinius::CompileError)

Backtrace:
 Rubinius::Compiler.compiler_error at /Users/agrimm/.rbenv/versions/rbx-1.2.4
                                      /lib/compiler/compiler.rbc:11
        Rubinius::Compiler.compile at /Users/agrimm/.rbenv/versions/rbx-1.2.4
                                      /lib/compiler/compiler.rbc:62
  Rubinius::CodeLoader#compile_file at kernel/delta/codeloader.rb:146
     Rubinius::CodeLoader#load_file at kernel/delta/codeloader.rb:118
   Rubinius::CodeLoader#load_script at kernel/delta/codeloader.rb:61
   Rubinius::CodeLoader.load_script at kernel/delta/codeloader.rb:90
            Rubinius::Loader#script at kernel/loader.rb:618
              Rubinius::Loader#main at kernel/loader.rb:762

Caused by: undefined method `body' on an instance of Rubinius::AST::SplatValue. (NoMethodError)

Backtrace:
  Kernel(Rubinius::AST::SplatValue)#body (method_missing) at kernel/delta/kernel.rb:79
  Rubinius::AST::OpAssign1#initialize at /Users/agrimm/.rbenv/versions/rbx-1.2.4
                                         /lib/compiler/ast/operators.rbc:136
 Rubinius::Melbourne#process_op_asgn1 at /Users/agrimm/.rbenv/versions/rbx-1.2.4
                                         /lib/melbourne/processor.rbc:332
      Rubinius::Melbourne#file_to_ast at /private/var/folders/3x
                                         /y_8y8vr53ws_kxj97km79q5h0000gn/T
                                         /ruby-build.20120706090940.39603
                                         /rubinius-1.2.4/lib/ext/melbourne
                                         /melbourne.cpp
       Rubinius::Melbourne#parse_file at /Users/agrimm/.rbenv/versions/rbx-1.2.4
                                         /lib/melbourne.rbc:83
 Rubinius::Compiler::FileParser#parse at /Users/agrimm/.rbenv/versions/rbx-1.2.4
                                         /lib/compiler/stages.rbc:219
  Rubinius::Compiler::Parser(Rubinius::Compiler::FileParser)#run at \
          /Users/agrimm/.rbenv/versions/rbx-1.2.4/lib/compiler/stages.rbc:202
               Rubinius::Compiler#run at /Users/agrimm/.rbenv/versions/rbx-1.2.4
                                         /lib/compiler/compiler.rbc:332
           Rubinius::Compiler.compile at /Users/agrimm/.rbenv/versions/rbx-1.2.4
                                         /lib/compiler/compiler.rbc:58
     Rubinius::CodeLoader#compile_file at kernel/delta/codeloader.rb:146
        Rubinius::CodeLoader#load_file at kernel/delta/codeloader.rb:118
      Rubinius::CodeLoader#load_script at kernel/delta/codeloader.rb:61
      Rubinius::CodeLoader.load_script at kernel/delta/codeloader.rb:90
               Rubinius::Loader#script at kernel/loader.rb:618
                 Rubinius::Loader#main at kernel/loader.rb:762
目前,我正在对我的部分代码进行注释,看看是什么导致了错误。是否有一个库可以自动执行此过程?

Fuckit.rb


计算的历史上到处都是试图修复或删除代码中的错误以继续运行的系统,无论是查找下一个语法错误还是尝试继续运行。没有一个没有导致一百万个层叠语法错误。@PaulTomblin我的目标不是删除导致错误的代码,而是确定是什么代码导致Rubinius抛出异常,并将其作为错误报告给Rubinius项目。
Kernel(Rubinius::AST::SplatValue)#body(方法_缺失)在kernel/delta/kernel.rb:79
中,回溯说它是在那一行调用未定义method@ashgromnies这并不能完全确定是什么代码导致了错误。