неочакван INDENT в Rails Coffescript след промяна на версията на Ruby

Първоначалният проблем

Променена версия на ruby ​​(1.9.3 > 1.9.2) и изведнъж всички скриптове за кафе започнаха да дават unexpected INDENT.

Проверих три пъти за несъответствие на интервали/табулатори във файловете и това не е проблемът. Когато коментирам целия скрипт, същият бъг прескача към следващия/друг файл на coffeescript.

Пробвано с coffee-rails версии 3.2.1 и 3.2.2. Без успех и в двете.

Някой да запали лампа?

Повече информация

Открих какво причинява това, но не мога да разбера защо трябва да работи по различен начин за различните версии на Ruby. Това е дълга история, но ето, че става.

Използвам трик, за да декларирам статични или динамични гетери и сетери за моите класове. Това е нещо като:

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: -> (...)

И това беше всичко. :С

Отговорът вече не е необходим, но ако някой може да го обясни... ще се радвам.


person Alvaro Lourenço    schedule 01.05.2013    source източник
comment
Току-що успях: Първо добавено, първо извикано, първо подслушвано. :(   -  person Alvaro Lourenço    schedule 01.05.2013


Отговори (1)


Този синтаксис не е разрешен "нарочно", ако е бил разрешен само защото компилаторът е отказал да генерира 'a'(...). ID block е обаждане

Вижте този проблем.

person Ven    schedule 01.05.2013
comment
Да, сега разбирам. Но... защо един и същ coffee-rails скъпоценен камък в крайна сметка ще използва различни версии на компилатора на coffeescript? - person Alvaro Lourenço; 02.05.2013
comment
може би не сте заключили внимателно вашата версия :) - person Ven; 02.05.2013