【问题标题】:Does JRuby support the { thing: "hello" } syntax?JRuby 是否支持 { thing: "hello" } 语法?
【发布时间】:2012-01-29 23:55:07
【问题描述】:

我遇到了很多语法错误:

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]"

【问题讨论】:

标签: ruby syntax jruby


【解决方案1】:

通过添加--1.9 命令行开关或将该开关添加到JRUBY_OPTS 环境变量,可以使JRuby 与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

【讨论】:

  • 新的jruby版本默认使用1.9模式
  • @three:感谢您提供的信息,但网站上的当前版本没有。
  • 好的,也许这只适用于主分支和所有即将推出的版本:twitter.com/#!/headius/status/162953097780535296
  • @three:很可能是这样。
  • 我用 RVM 获取了jruby-head,它似乎可以工作,所以看起来@three 是正确的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-17
  • 2012-07-12
  • 1970-01-01
  • 1970-01-01
  • 2012-04-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多