Like Symbol#<=>, but case-insensitive; equivalent to self.to_s.casecmp(object.to_s)
:
lower = :abc upper = :ABC upper.casecmp(lower) # => 0 lower.casecmp(lower) # => 0 lower.casecmp(upper) # => 0
Returns nil if self
and object
have incompatible encodings, or if object
is not a symbol:
sym = 'äöü'.encode("ISO-8859-1").to_sym other_sym = 'ÄÖÜ' sym.casecmp(other_sym) # => nil :foo.casecmp(2) # => nil
Unlike Symbol#casecmp?
, case-insensitivity does not work for characters outside of 'A'..'Z' and 'a'..'z':
lower = :äöü upper = :ÄÖÜ upper.casecmp(lower) # => -1 lower.casecmp(lower) # => 0 lower.casecmp(upper) # => 1
Related: Symbol#casecmp?
, String#casecmp
.