From e0feb0708bb4194dcebea1f8f47cde441af2dab5 Mon Sep 17 00:00:00 2001 From: Akira Matsuda Date: Sat, 7 Jan 2023 04:23:10 +0900 Subject: [PATCH] String#split seems to be faster than capturing digits with Regexp --- lib/ipaddr.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/ipaddr.rb b/lib/ipaddr.rb index 7a5cf94..0c731bc 100644 --- a/lib/ipaddr.rb +++ b/lib/ipaddr.rb @@ -52,7 +52,7 @@ class IPAddr # Regexp _internally_ used for parsing IPv4 address. RE_IPV4ADDRLIKE = %r{ \A - (\d+) \. (\d+) \. (\d+) \. (\d+) + \d+ \. \d+ \. \d+ \. \d+ \z }x @@ -647,8 +647,8 @@ def in_addr(addr) when Array octets = addr else - m = RE_IPV4ADDRLIKE.match(addr) or return nil - octets = m.captures + RE_IPV4ADDRLIKE.match?(addr) or return nil + octets = addr.split('.') end octets.inject(0) { |i, s| (n = s.to_i) < 256 or raise InvalidAddressError, "invalid address: #{@addr}"