Все, что вы можете сделать с if...elsif...else...end
if cond1
stmt1
elsif cond2
stmt2
elseif cond3
stmt3
else
stmt4
end
вы можете сделать с вложенными троичными операторами:
cond1 ? stmt1 : (cond2 ? stmt2 : (cond3 ? stmt3 : stmt4)))
или с еще меньшей ясностью, опуская скобки :
cond1 ? stmt1 : cond2 ? stmt2 : cond3 ? stmt3 : stmt4
Но подумайте, какой код является более понятным и более простым в обслуживании.
В вашем вопросе вы спросили, можете ли вы провести еще один тест для ARGV[1]
во вложенных условиях. Если ваши условия всегда проверяют ARGV[1]
на равенство, то утверждение дела превосходит:
case ARGV[1]
when 'home'
installabra
when 'away'
goaway
else
puts menuInstall
end
Вы имеете в виду вложенный тернарный оператор? – megas
Вы можете, но нахмурились. – mcfinnigan
уточните вашу потребность, пожалуйста? –