mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Add {String,Symbol}#casecmp?; CRuby2.4
This commit is contained in:
@@ -144,7 +144,20 @@ class String
|
||||
def casecmp(str)
|
||||
self.downcase <=> str.to_str.downcase
|
||||
rescue NoMethodError
|
||||
raise TypeError, "no implicit conversion of #{str.class} into String"
|
||||
nil
|
||||
end
|
||||
|
||||
##
|
||||
# call-seq:
|
||||
# str.casecmp?(other) -> true, false, or nil
|
||||
#
|
||||
# Returns true if str and other_str are equal after case folding,
|
||||
# false if they are not equal, and nil if other_str is not a string.
|
||||
|
||||
def casecmp?(str)
|
||||
c = self.casecmp(str)
|
||||
return nil if c.nil?
|
||||
return c == 0
|
||||
end
|
||||
|
||||
def partition(sep)
|
||||
|
||||
@@ -48,10 +48,23 @@ class Symbol
|
||||
def casecmp(other)
|
||||
return nil unless other.kind_of?(Symbol)
|
||||
lhs = self.to_s; lhs.upcase!
|
||||
rhs = other.to_s; rhs.upcase!
|
||||
rhs = other.to_s.upcase
|
||||
lhs <=> rhs
|
||||
end
|
||||
|
||||
##
|
||||
# call-seq:
|
||||
# sym.casecmp?(other) -> true, false, or nil
|
||||
#
|
||||
# Returns true if sym and other_sym are equal after case folding,
|
||||
# false if they are not equal, and nil if other_sym is not a string.
|
||||
|
||||
def casecmp?(sym)
|
||||
c = self.casecmp(sym)
|
||||
return nil if c.nil?
|
||||
return c == 0
|
||||
end
|
||||
|
||||
#
|
||||
# call-seq:
|
||||
# sym.empty? -> true or false
|
||||
|
||||
Reference in New Issue
Block a user