2012-01-29 47 views
2

我得到了很多語法錯誤:JRuby是否支持{thing:「hello」}語法?

SyntaxError: /Users/davidtuite/dev/ruby/seenbefore_client/spec/lib/url_group_spec.rb:40: syntax error, unexpected ':' 

     records = stub(length: length) 

JRuby Blog說:「現在的編譯器處理所有1.9語法」,因爲JRuby的1.6.0.rc2。

我使用JRuby 1.6.5

rvm info 
    ruby: 
    interpreter: "jruby" 
    version:  "1.6.5" 
    date:   "2011-10-25" 
    platform:  "darwin-x86_64-java" 
    patchlevel: "TM" 
    full_version: "jruby 1.6.5 (ruby-1.8.7-p330) (2011-10-25 9dcd388) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_29) [darwin-x86_64-java]" 
+0

您必須[使用1.9模式](http://stackoverflow.com/questions/4755900/how-to-make-jruby-1-6-default-to-ruby-1-9)。 – yfeldblum 2012-01-29 15:54:27

回答

3

的JRuby可以通過添加--1.9命令行開關或通過添加切換到JRUBY_OPTS環境變量進行1.9.2兼容:

$ export JRUBY_OPTS='--1.9' 
$ bin/irb 
irb(main):001:0> RUBY_VERSION 
=> "1.9.2" 
irb(main):002:0> {asd:3} 
=> {:asd=>3} 

不知道如何告訴你的RVM。順便說一下,在Windows上,批處理語法是set JRUBY_OPTS=--1.9

+2

新的jruby版本將默認使用1.9模式 – three 2012-01-29 15:58:27

+0

@three:感謝您的信息,但網站的當前版本不支持。 – 2012-01-29 16:00:00

+0

好的,也許這隻適用於主分支和所有即將推出的版本:https://twitter.com/#!/headius/status/162953097780535296 – three 2012-01-29 16:03:08