【发布时间】:2016-03-23 19:59:24
【问题描述】:
我在下面的 Ruby 代码中收到 语法错误,意外 tLABEL。错误描述在“超时”之后指向“:”。
def self.run(*args, timeout: nil, environment: {})
# ...
end
我对 Ruby 一无所知。我尝试了一些方法,例如用 '=' 替换 ':' 或将 nil 放入 {},但似乎没有任何效果。
我的 ruby 版本是 2.1.5。
IUQ-mini:~ IUQ$ rbenv versions
system
* 2.1.5 (set by /Users/IUQ/.ruby-version)
2.1.7
2.2.3
具体代码可以在here at line #38找到。
关于 SO 的几个问题表明这可能是由于大括号放错了,但我没有看到错误 - 再次是我缺乏 Ruby 知识!
请帮助我了解此错误的原因以及如何解决此问题?
谢谢
【问题讨论】:
-
以上代码在 Ruby 2.x 中有效。你确定你没有运行 Ruby 1.9?
-
@Stefan - 是的,它的 2.1.5。 rbenv 版本 返回 _* 2.1.5(由 /Users/me/.rbenv/versions/.ruby-version 设置)
-
如何执行产生此错误的代码?
-
我有一个 Java 程序,它通过 JRuby(版本 1.7.24)间接执行此代码。如您所见,它是 command_runner_ng gem 的一部分,它依赖于 run_loop gem。它们都是 calabash-ios 设置的一部分。
-
似乎 JRuby 正在“1.9 模式”下运行您的代码,并且您的 Ruby 2.1.5 安装根本没有使用。也许熟悉 JRuby 和/或 calabash-ios(我不是)的人可以提供帮助。
标签: ruby calabash-ios