Синтаксические ошибки Рубиния
При работе с LocomotiveCMS с использованием Rubinius я столкнулся с множеством синтаксических ошибок. Все были по линии expecting '|'
, Никто не публиковал сообщения об этом, поэтому я решил спросить: как мне решить эти проблемы? Это проблема с Рубиниусом?
1 ответ
Прежде всего, LocomotiveCMS поддерживает только "последнюю версию Ruby" (Ruby 1.9.2 и выше). Посмотреть раздел требований.
По умолчанию Rubinius использует Ruby 1.8.7 ( посмотреть на rvm.io). Если вы посмотрите на строки, где происходит большинство этих синтаксических ошибок, как в app/models/locomotive/page.rb
они, скорее всего, в "лямбдах", которые не поддерживаются до Ruby 1.9.
Чтобы решить эту проблему, вы можете заставить Rubinius (rbx) использовать Ruby 1.9 двумя способами:
Используйте rvm для переустановки rbx, используя Ruby 1.9 по умолчанию:
rvm reinstall rbx --1.9
Примечание: если rvm жалуется на неверные аргументы, обновите rvm, используя
rvm get master
или жеrvm get stable
,Или, если вы не хотите полностью переустанавливать rbx, вы можете установить переменную окружения в каталоге, который вы будете называть Rubinius, как в корневом каталоге rails.
export RBXOPT=-X19
Вы можете проверить, что переменная окружения установлена с помощью
rbx -v
проверить версию Ruby. Он должен вернуть что-то вроде:rubinius 2.0.0.rc1 (1.9.3 release ...)
Примечание. Если вы запускаете Rubinius из другого каталога, вам нужно будет снова установить этот параметр.