Skip to content
Snippets Groups Projects
Commit ad087f8f authored by Mike Mackintosh's avatar Mike Mackintosh
Browse files

added IPv4#[]= to fix #24

parent 1f207635
No related branches found
No related tags found
No related merge requests found
......@@ -286,6 +286,21 @@ module IPAddress;
@octets[index]
end
alias_method :octet, :[]
#
# Updated the octet specified at index
#
# ip = IPAddress("172.16.100.50/24")
# ip[2] = 200
#
# #=> #<IPAddress::IPv4:0x00000000000000 @address="172.16.200.1",
# #=> @prefix=32, @octets=[172, 16, 200, 1], @u32=2886780929>
#
def []=(index, value)
@octets[index] = value.to_i
initialize("#{@octets.join('.')}/#{prefix}")
end
alias_method :octet=, :[]=
#
# Returns the address portion of an IP in binary format,
......
......@@ -581,6 +581,20 @@ class IPv4Test < Minitest::Test
end
end
def test_octect_updates
ip = @klass.new("10.0.1.15/32")
ip[1] = 15
assert_equal "10.15.1.15/32", ip.to_string
ip = @klass.new("172.16.100.1")
ip[3] = 200
assert_equal "172.16.100.200/32", ip.to_string
ip = @klass.new("192.168.199.0/24")
ip[2] = 200
assert_equal "192.168.200.0/24", ip.to_string
end
end # class IPv4Test
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment