【问题标题】:"unexpected INDENT" in Rails Coffescript after Ruby version changeRuby版本更改后Rails Coffescript中的“意外缩进”
【发布时间】:2013-05-02 04:56:17
【问题描述】:

原来的问题

更改了 ruby​​ 版本 (1.9.3 > 1.9.2),突然所有的咖啡脚本都开始生成 unexpected INDENT

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

尝试使用 coffee-rails 版本 3.2.1 和 3.2.2。两者都没有成功。

有人来点灯吗?

更多详情

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

我使用一个技巧来为我的类声明 staticdynamic 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

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

【问题讨论】:

  • 刚刚成功:第一次添加,第一次调用,第一次窃听。 :(

标签: ruby-on-rails ruby coffeescript


【解决方案1】:

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

this issue

【讨论】:

  • 是的,我现在明白了。但是...为什么相同的coffee-rails gem 最终会使用不同版本的coffeescript 编译器?
  • 也许你没有仔细锁定你的版本:)
猜你喜欢
  • 2022-01-05
  • 2017-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多