Ответ 1
Возможно, вы не знали, что можете задать несколько условий для одного случая:
case mystr
when "abc", "def", "ghi", "xyz"
..
end
Но для этого конкретного теста на основе строки я бы использовал regex:
if mystr =~ /\A(?:abc|def|ghi|xyz)\z/
Если вы не хотите создавать регулярное выражение и вам не нужен оператор case
, вы можете создать массив объектов и использовать Array#include?
проверить, находится ли объект в массиве:
if [a,b,c,d].include?( o )
или, с помощью объекта исправления обезьяны, вы можете даже повернуть его:
class Object
def in?( *values )
values.include?( self )
end
end
if o.in?( a, b, c, d )