diff options
author | knu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-11-05 13:53:38 +0000 |
---|---|---|
committer | knu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-11-05 13:53:38 +0000 |
commit | 2d8841791facb07155c710d8a7db7b0bf8be0d21 (patch) | |
tree | 050e10063c3ceff4fecaeaec4c333fe497e4d6cb /lib/ipaddr.rb | |
parent | 9cbd6ee09770be3d73a17ab1195a094c59c9f9ee (diff) | |
download | ruby-2d8841791facb07155c710d8a7db7b0bf8be0d21.tar.gz |
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
Diffstat (limited to 'lib/ipaddr.rb')
-rw-r--r-- | lib/ipaddr.rb | 13 |
1 files changed, 8 insertions, 5 deletions
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 |