I often want to use
=== to match a single object on the right side against multiple objects on the left, as is used in
case-constructions, just to return a truth value, and end up writing like this:
bar # => "bar" flag1 = case bar; when "foo", "bar", "baz"; true; end # => true flag2 = case bar; when Symbol, String; true; end # => true
Kernel#case? that should work like this:
bar # => "bar" bar.case?("foo", "bar", "baz") # => true bar.case?("qux") # => false bar.case?(Symbol, String) # => true bar.case?(Array) # => false bar.case? # => false
It is similar to Rails'
in?, but it differs from it in that it uses
=== for comparison, not
Or, alternatively, allowing
Kernel#kind_of? to allow multiple arguments may be a compromise.