Skip to content

End of Life Ruby 3.2 has reached end of life and gets no more fixes. Switch to Ruby 4.0 →

instance method

Symbol#casecmp?

casecmp?(object) → true, false, or nil

Returns true if self and object are equal after Unicode case folding, otherwise false:

Example
lower = :abc
upper = :ABC
upper.casecmp?(lower) # => true
lower.casecmp?(lower) # => true
lower.casecmp?(upper) # => true

Returns nil if self and object have incompatible encodings, or if object is not a symbol:

Example
sym = 'äöü'.encode("ISO-8859-1").to_sym
other_sym = 'ÄÖÜ'
sym.casecmp?(other_sym) # => nil
:foo.casecmp?(2)        # => nil

Unlike Symbol#casecmp, works for characters outside of ‘A’..‘Z’ and ‘a’..‘z’:

Example
lower = :äöü
upper = :ÄÖÜ
upper.casecmp?(lower) # => true
lower.casecmp?(lower) # => true
lower.casecmp?(upper) # => true

Related: Symbol#casecmp, String#casecmp?.

See also #casecmp #downcase #capitalize #empty? also in 4.1 · 4.0 · 3.4 · 3.3 · 3.1 · 3.0