From 6ad52e336d1733a0740186b7ee4df60c6e79030a Mon Sep 17 00:00:00 2001 From: Akira Matsuda Date: Sat, 7 Jan 2023 04:23:10 +0900 Subject: [PATCH] [ruby/ipaddr] String#split seems to be faster than capturing digits with Regexp https://github.com/ruby/ipaddr/commit/e0feb0708b --- lib/ipaddr.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/ipaddr.rb b/lib/ipaddr.rb index 1e4fd711ca..35e2848939 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 @@ -669,8 +669,8 @@ class IPAddr 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}"