instance method
Symbol#casecmp
(untyped object) -> (-1 | 0 | 1)?
casecmp(object) → -1, 0, 1, or nil
string.c
View on GitHub ↗
static VALUE
sym_casecmp(VALUE sym, VALUE other)
{
if (!SYMBOL_P(other)) {
return Qnil;
}
return str_casecmp(rb_sym2str(sym), rb_sym2str(other));
}
Like Symbol#<=>, but case-insensitive; equivalent to self.to_s.casecmp(object.to_s):
Example
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:
Example
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’:
Example
lower = :äöü upper = :ÄÖÜ upper.casecmp(lower) # => -1 lower.casecmp(lower) # => 0 lower.casecmp(upper) # => 1
Related: Symbol#casecmp?, String#casecmp.