From c96dbadee3b088868192bf103a5f7b3ac9fc5d24 Mon Sep 17 00:00:00 2001 From: ishikawa999 Date: Sat, 27 Apr 2024 16:24:39 +0900 Subject: [PATCH] Fix InvalidAddressError message --- lib/ipaddr.rb | 4 ++-- test/test_ipaddr.rb | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/lib/ipaddr.rb b/lib/ipaddr.rb index 1ad7980..fca75de 100644 --- a/lib/ipaddr.rb +++ b/lib/ipaddr.rb @@ -721,8 +721,8 @@ def in_addr(addr) octets = addr.split('.') end octets.inject(0) { |i, s| - (n = s.to_i) < 256 or raise InvalidAddressError, "invalid address: #{@addr}" - (s != '0') && s.start_with?('0') and raise InvalidAddressError, "zero-filled number in IPv4 address is ambiguous: #{@addr}" + (n = s.to_i) < 256 or raise InvalidAddressError, "invalid address: #{addr}" + (s != '0') && s.start_with?('0') and raise InvalidAddressError, "zero-filled number in IPv4 address is ambiguous: #{addr}" i << 8 | n } end diff --git a/test/test_ipaddr.rb b/test/test_ipaddr.rb index 64927a1..005927c 100644 --- a/test/test_ipaddr.rb +++ b/test/test_ipaddr.rb @@ -620,4 +620,16 @@ def test_hash assert_equal(true, s.include?(a5)) assert_equal(true, s.include?(a6)) end + + def test_raises_invalid_address_error_with_error_message + e = assert_raise(IPAddr::InvalidAddressError) do + IPAddr.new('192.168.0.1000') + end + assert_equal('invalid address: 192.168.0.1000', e.message) + + e = assert_raise(IPAddr::InvalidAddressError) do + IPAddr.new('192.168.01.100') + end + assert_equal('zero-filled number in IPv4 address is ambiguous: 192.168.01.100', e.message) + end end