Anda bisa memanfaatkan "splat" ruby atau sintaks yang rata.
Ini membuat when
klausa yang terlalu banyak - Anda memiliki sekitar 10 nilai untuk diuji per cabang jika saya mengerti dengan benar - sedikit lebih mudah dibaca menurut pendapat saya. Selain itu, Anda dapat mengubah nilai untuk menguji saat runtime. Sebagai contoh:
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
Pendekatan umum lainnya adalah dengan menggunakan hash sebagai tabel pengiriman, dengan kunci untuk setiap nilai car
dan nilai-nilai yang merupakan beberapa objek yang dapat dipanggil yang mengenkapsulasi kode yang ingin Anda jalankan.