Вы можете воспользоваться синтаксисом рубина или сглаживающим синтаксисом.
Это делает переросшие when
предложения - у вас есть около 10 значений для тестирования на ветку, если я правильно понимаю - немного более читабельным, на мой взгляд. Кроме того, вы можете изменить значения для тестирования во время выполнения. Например:
honda = ['honda', 'acura', 'civic', 'element', 'fit', ...]
toyota = ['toyota', 'lexus', 'tercel', 'rx', 'yaris', ...]
...
if include_concept_cars
honda += ['ev-ster', 'concept c', 'concept s', ...]
...
end
case car
when *toyota
# Do something for Toyota cars
when *honda
# Do something for Honda cars
...
end
Другим распространенным подходом было бы использование хеша в качестве таблицы диспетчеризации с ключами для каждого значения car
и значениями, которые являются вызываемым объектом, инкапсулирующим код, который вы хотите выполнить.