I think pattern matching should be used here instead of making is_a? more complicated:
irb(main):001:0> name = :abc
=> :abc
irb(main):002:0> name in String | Symbol
=> true
irb(main):003:0> name = 42
=> 42
irb(main):004:0> name in String | Symbol
=> false
is_a? is deeply optimized so accepting multiple arguments would likely make it slower or complicate things significantly.