From 228bb8ea4c882cda737ceceeec9eab207ee19a22 Mon Sep 17 00:00:00 2001 From: knu Date: Thu, 4 Oct 2007 19:03:56 +0000 Subject: * lib/ipaddr.rb (in_addr, in6_addr, addr_mask): Make some minor code optimization. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13629 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/ipaddr.rb | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) (limited to 'lib/ipaddr.rb') diff --git a/lib/ipaddr.rb b/lib/ipaddr.rb index 56b906c805..d69339a7c8 100644 --- a/lib/ipaddr.rb +++ b/lib/ipaddr.rb @@ -496,12 +496,9 @@ class IPAddr def in_addr(addr) if addr =~ /^\d+\.\d+\.\d+\.\d+$/ - n = 0 - addr.split('.').each { |i| - n <<= 8 - n += i.to_i + return addr.split('.').inject(0) { |i, s| + i << 8 | s.to_i } - return n end return nil end @@ -525,25 +522,20 @@ class IPAddr if rest < 0 return nil end - a = [l, Array.new(rest, '0'), r].flatten! - n = 0 - a.each { |i| - n <<= 16 - n += i.hex + return (l + Array.new(rest, '0') + r).inject(0) { |i, s| + i << 16 | s.hex } - return n end def addr_mask(addr) case @family when Socket::AF_INET - addr &= IN4MASK + return addr & IN4MASK when Socket::AF_INET6 - addr &= IN6MASK + return addr & IN6MASK else raise "unsupported address family" end - return addr end def _reverse -- cgit v1.2.1