我在Ruby代码下面遇到语法错误,意外的tLABEL 。错误描述指向':'在'超时'。
之后def self.run(*args, timeout: nil, environment: {})
# ...
end
我不懂Ruby。我尝试过很少的事情,比如替换':'用' ='或者在{}中加入nil但似乎没有任何效果。
我的红宝石版本是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知识!
请帮助我了解此错误的原因以及如何解决此问题?
谢谢
答案 0 :(得分:2)
这不适用于ruby 1.9(如果事实上JRuby将你限制为1.9),因为如果它是第一个参数,那么splat预计会紧跟在它后面。[/ p>
您可以这样做:
def self.run (environment = {}, timeout = nil, *args)
end
唯一的问题是,如果你想把东西传递给args [],你必须明确传递一些东西(甚至是nil)才能超时。
答案 1 :(得分:0)
Calabash iOS和Android 需要 ruby> = 2.0。
建议使用最新发布的ruby版本。
目前不支持任何版本的JRuby。
Travis build
如果你查看该版本的信息,你会发现它失败了,因为它在ruby 1.9.3上运行。
我相信你已经安装了ruby 2.0。我认为你没有使用它。
$ rbenv versions
system
1.8.7-p375
1.9.3-p484
2.0.0-p481
2.1.5
2.2.2
2.2.3
* 2.3.0 (set by /Users/moody/.rbenv/version) <== Active ruby in this dir
jruby-1.7.18
$ rbenv version # Active ruby in this directory
2.3.0
您从未提及您正在使用的run_loop版本。您应该更新到最新的稳定版本。
https://github.com/calabash/calabash-ios/wiki/Updating-your-run-loop-version