Исходная проблема
Поменял рубиновую версию (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: -> (...)
И в этом все дело. :С
Отвечать уже не надо, но если бы кто-нибудь объяснил... Буду рад.