Вот неожиданная находка. Кое-что из очень простой проблемы с Ruby, с которой я не сталкивался раньше:
a = "a"
if a
test = "yes" if a == "a" else "no"
else
test = "no"
end
Запуск этого приводит к ошибке:
syntax error, unexpected kELSE, expecting kEND
Похоже, вложенный oneliner выливается в прилагаемый оператор if. Какое обобщенное решение для этого? Не используете oneliner внутри разнесенного оператора if? (Он работает при разрыве вложенного условного выражения, поскольку завершается ключевым словом end
.
Кстати, это минимизированный надуманный пример, поэтому не нужно объяснять его глупость или вопрос, зачем я это делаю. Я ищу общее объяснение того, как предотвратить попадание операторов ruby oneliner в условные области.