0

最初的问题

更改了 ruby​​ 版本 ( 1.9.3> 1.9.2),突然所有的 coffeescripts 开始产生效果unexpected INDENT

我已经三重检查了文件上的空格/制表符不一致,这不是问题。当我评论整个脚本时,相同的错误会跳转到下一个/另一个咖啡脚本文件。

尝试使用coffee-rails3.2.1 和 3.2.2 版本。两者都没有成功。

有人要点灯吗?

更多细节

我找到了造成这种情况的原因,但我不明白为什么它对于不同的 Ruby 版本应该有不同的工作方式。这是一个很长的故事,但在这里。

我使用一个技巧来为我的类声明静态动态的getter 和 setter。这类似于:

Function::dynamic = (prop, desc) ->
  Object.defineProperty @prototype, prop, desc

Function::static = (prop, desc) ->
  Object.defineProperty @, prop, desc

这为我提供了一种声明属性的方法,如下所示:

class MyClass
  @static 'accessor'
    get: -> _accessor
    set: (value) -> _acessor = value

我的代码中有很多这样的东西,但是在 Ruby 降级之后,代码结构就停止了工作。现在我必须在方法的第一个参数之后添加一个逗号。喜欢:

@static 'accessor',
  get: -> (...)

这就是它的全部意义所在。:S

不再需要回答它,但如果有人可以解释它......我会很高兴。

4

1 回答 1

1

这种语法是“故意”不允许的,如果只是因为编译器拒绝生成而被允许'a'(...)ID block是一个电话

看到这个问题

于 2013-05-01T20:56:17.377 回答