From d0da57ac40bafaad95e90a375216ba1d9a658747 Mon Sep 17 00:00:00 2001 From: knu Date: Sat, 5 Nov 2016 13:53:38 +0000 Subject: IPAddr#== and IPAddr#<=> no longer raise an exception if coercion fails * lib/ipaddr.rb (IPAddr#==): If coercion fails, return false instead of passing through the exception. [ruby-core:77451] [Bug #12799] * lib/ipaddr.rb (IPAddr#<=>): If coercion fails, return nil instead of passing through the exception. [ruby-core:77451] [Bug #12799] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56594 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/ipaddr.rb | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'lib') diff --git a/lib/ipaddr.rb b/lib/ipaddr.rb index 458be58577..6f70ebf773 100644 --- a/lib/ipaddr.rb +++ b/lib/ipaddr.rb @@ -149,7 +149,10 @@ class IPAddr # Returns true if two ipaddrs are equal. def ==(other) other = coerce_other(other) - return @family == other.family && @addr == other.to_i + rescue + false + else + @family == other.family && @addr == other.to_i end # Returns a new ipaddr built by masking IP address with the given @@ -335,10 +338,10 @@ class IPAddr # Compares the ipaddr with another. def <=>(other) other = coerce_other(other) - - return nil if other.family != @family - - return @addr <=> other.to_i + rescue + nil + else + @addr <=> other.to_i if other.family == @family end include Comparable -- cgit v1.2.3