netaddr 1.5.1 → 2.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,199 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require_relative "../lib/netaddr.rb"
4
+ require 'test/unit'
5
+
6
+ class TestIPv6Net < Test::Unit::TestCase
7
+ def test_new
8
+ ip = NetAddr::IPv6.parse("1::")
9
+ m128 = NetAddr::Mask128.new(24)
10
+ net = NetAddr::IPv6Net.new(ip,m128)
11
+ assert_equal("1::/24", net.to_s)
12
+
13
+ assert_equal("1::/64", NetAddr::IPv6Net.new(ip,nil).to_s)
14
+
15
+ ip = NetAddr::IPv6.parse("::")
16
+ assert_equal("::/128", NetAddr::IPv6Net.new(ip,nil).to_s)
17
+ end
18
+
19
+ def test_parse
20
+ assert_equal("1::/24", NetAddr::IPv6Net.parse("1::1/24").to_s)
21
+ assert_equal("::/128", NetAddr::IPv6Net.parse("::").to_s) # default /128
22
+ assert_equal("1::/64", NetAddr::IPv6Net.parse("1::1").to_s) # default /64
23
+ end
24
+
25
+ def test_cmp
26
+ net1 = NetAddr::IPv6Net.parse("1:1::/32")
27
+ net2 = NetAddr::IPv6Net.parse("1::/32")
28
+ net3 =NetAddr::IPv6Net.parse("1:2::/32")
29
+ net4 = NetAddr::IPv6Net.parse("1:1::/33")
30
+ net5 = NetAddr::IPv6Net.parse("1:1::/32")
31
+
32
+ assert_equal(1, net1.cmp(net2)) # ip less
33
+ assert_equal(-1, net1.cmp(net3))# ip greater
34
+ assert_equal(-1, net4.cmp(net1)) # ip eq, mask less
35
+ assert_equal(1, net1.cmp(net4)) # ip eq, mask greater
36
+ assert_equal(0, net1.cmp(net5)) # eq
37
+ end
38
+
39
+ def test_contains
40
+ net = NetAddr::IPv6Net.parse("1:8::/29")
41
+ ip1 = NetAddr::IPv6.parse("1:f::")
42
+ ip2 = NetAddr::IPv6.parse("1:10::")
43
+ ip3 = NetAddr::IPv6.parse("1:7::")
44
+
45
+ assert_equal(true, net.contains(ip1))
46
+ assert_equal(false, net.contains(ip2))
47
+ assert_equal(false, net.contains(ip3))
48
+ end
49
+
50
+ def test_fill
51
+ # filter supernet. remove subnets of subnets. basic fwd fill.
52
+ parent = NetAddr::IPv6Net.parse("ff00::/8")
53
+ nets = []
54
+ ["ff00::/8", "ff00::/9", "ff08::/14", "fe00::/7", "ff20::/11", "ff20::/12"].each do |net|
55
+ nets.push(NetAddr::IPv6Net.parse(net))
56
+ end
57
+ expect = ["ff00::/9", "ff80::/9"]
58
+ i = 0
59
+ parent.fill(nets).each do |net|
60
+ assert_equal(expect[i],net.to_s)
61
+ i += 1
62
+ end
63
+
64
+ # basic backfill
65
+ parent = NetAddr::IPv6Net.parse("8000::/1")
66
+ nets = []
67
+ ["c000::/2"].each do |net|
68
+ nets.push(NetAddr::IPv6Net.parse(net))
69
+ end
70
+ expect = ["8000::/2","c000::/2"]
71
+ i = 0
72
+ parent.fill(nets).each do |net|
73
+ assert_equal(expect[i],net.to_s)
74
+ i += 1
75
+ end
76
+
77
+ # basic fwd fill with non-contiguous subnets
78
+ parent = NetAddr::IPv6Net.parse("ff00::/121")
79
+ nets = []
80
+ ["ff00::/126", "ff00::/120"].each do |net|
81
+ nets.push(NetAddr::IPv6Net.parse(net))
82
+ end
83
+ expect = ["ff00::/126", "ff00::4/126", "ff00::8/125", "ff00::10/124", "ff00::20/123", "ff00::40/122"]
84
+ i = 0
85
+ parent.fill(nets).each do |net|
86
+ assert_equal(expect[i],net.to_s)
87
+ i += 1
88
+ end
89
+
90
+ # basic backfill. complex fwd fill that uses 'shrink' of the proposed ffff:ffff:ffff:fff8::/62 subnet. designed to cross the /64 bit boundary.
91
+ parent = NetAddr::IPv6Net.parse("fff:ffff:ffff:fff0::/60")
92
+ nets = []
93
+ ["ffff:ffff:ffff:fff4::/62", "ffff:ffff:ffff:fffb::/65"].each do |net|
94
+ nets.push(NetAddr::IPv6Net.parse(net))
95
+ end
96
+ expect = ["ffff:ffff:ffff:fff0::/62", "ffff:ffff:ffff:fff4::/62", "ffff:ffff:ffff:fff8::/63", "ffff:ffff:ffff:fffa::/64", "ffff:ffff:ffff:fffb::/65",
97
+ "ffff:ffff:ffff:fffb:8000::/65", "ffff:ffff:ffff:fffc::/62"]
98
+ i = 0
99
+ parent.fill(nets).each do |net|
100
+ assert_equal(expect[i],net.to_s)
101
+ i += 1
102
+ end
103
+
104
+ # list contains the supernet
105
+ parent = NetAddr::IPv6Net.parse("ffff::/16")
106
+ nets = []
107
+ ["ffff::/16"].each do |net|
108
+ nets.push(NetAddr::IPv6Net.parse(net))
109
+ end
110
+ expect = []
111
+ i = 0
112
+ parent.fill(nets).each do |net|
113
+ assert_equal(expect[i],net.to_s)
114
+ i += 1
115
+ end
116
+ end
117
+
118
+ def test_next
119
+ assert_equal("::2/127", NetAddr::IPv6Net.parse("::/127").next.to_s)
120
+ assert_equal("::8/125", NetAddr::IPv6Net.parse("::4/126").next.to_s)
121
+ assert_equal("0:0:0:2::/63", NetAddr::IPv6Net.parse("::1:8000:0:0:0/65").next.to_s)
122
+ assert_equal("0:0:0:3::/64", NetAddr::IPv6Net.parse("::2:8000:0:0:0/65").next.to_s)
123
+ assert_nil(NetAddr::IPv6Net.parse("ffff::/16").next)
124
+ end
125
+
126
+ def test_next_sib
127
+ assert_equal("0:0:0:2::/65", NetAddr::IPv6Net.parse("::1:8000:0:0:0/65",).next_sib.to_s)
128
+ assert_equal("0:0:0:2::/64", NetAddr::IPv6Net.parse("0:0:0:1::/64",).next_sib.to_s)
129
+ assert_equal("2::/16", NetAddr::IPv6Net.parse("1::/16").next_sib.to_s)
130
+ assert_nil(NetAddr::IPv6Net.parse("ffff::/16").next_sib)
131
+ end
132
+
133
+ def test_nth
134
+ assert_equal("1::", NetAddr::IPv6Net.parse("1::0/64").nth(0).to_s)
135
+ assert_equal("::", NetAddr::IPv6Net.parse("::/127").nth(0).to_s)
136
+ assert_equal("::1", NetAddr::IPv6Net.parse("::/127").nth(1).to_s)
137
+ assert_nil(NetAddr::IPv6Net.parse("::/127").nth(2))
138
+ end
139
+
140
+ def test_nth_subnet
141
+ assert_equal("1::/30", NetAddr::IPv6Net.parse("1::/24").nth_subnet(30,0).to_s)
142
+ assert_nil(NetAddr::IPv6Net.parse("1::").nth_subnet(26,4))
143
+ end
144
+
145
+ def test_prev
146
+ assert_equal("1::/125", NetAddr::IPv6Net.parse("1::8/126").prev.to_s)
147
+ assert_equal("f::/63", NetAddr::IPv6Net.parse("f:0:0:2::/63").prev.to_s)
148
+ assert_equal("e::/16", NetAddr::IPv6Net.parse("f::/63").prev.to_s)
149
+ assert_nil(NetAddr::IPv6Net.parse("::").prev)
150
+ end
151
+
152
+ def test_prev_sib
153
+ assert_equal("0:0:0:1::/64", NetAddr::IPv6Net.parse("0:0:0:2::/64").prev_sib.to_s)
154
+ assert_equal("1::/16", NetAddr::IPv6Net.parse("2::/16").prev_sib.to_s)
155
+ assert_nil(NetAddr::IPv6Net.parse("::/64").prev_sib)
156
+ end
157
+
158
+ def test_rel
159
+ net1 = NetAddr::IPv6Net.parse("1::/63")
160
+ net2 = NetAddr::IPv6Net.parse("1::/64")
161
+ net3 = NetAddr::IPv6Net.parse("1::/60")
162
+ net4 = NetAddr::IPv6Net.parse("1:0:0:1::/64")
163
+ net5 = NetAddr::IPv6Net.parse("2::/64")
164
+ assert_equal(1, net1.rel(net2)) # net eq, supernet
165
+ assert_equal(-1, net2.rel(net1)) # net eq, subnet
166
+ assert_equal(0, net2.rel(net2)) # eq
167
+ assert_equal(1, net3.rel(net4)) # net ne, supernet
168
+ assert_equal(-1, net4.rel(net3)) # net ne, subnet
169
+ assert_nil(net2.rel(net5)) # unrelated
170
+ end
171
+
172
+ def test_resize
173
+ assert_equal("1::/64", NetAddr::IPv6Net.parse("1::/63").resize(64).to_s)
174
+ end
175
+
176
+ def test_subnet_count
177
+ assert_equal(2, NetAddr::IPv6Net.parse("ff::/8").subnet_count(9))
178
+ assert_equal(4, NetAddr::IPv6Net.parse("ff::/8").subnet_count(10))
179
+ assert_equal(0, NetAddr::IPv6Net.parse("ff::/8").subnet_count(8))
180
+ assert_equal(0, NetAddr::IPv6Net.parse("::/0").subnet_count(128))
181
+ end
182
+
183
+ def test_summ
184
+ net1 = NetAddr::IPv6Net.parse("1::/128")
185
+ net2 = NetAddr::IPv6Net.parse("1::1/128")
186
+ net3 = NetAddr::IPv6Net.parse("1::0/128")
187
+ net4 = NetAddr::IPv6Net.parse("1::/16")
188
+ net5 = NetAddr::IPv6Net.parse("2::/16")
189
+ net6 = NetAddr::IPv6Net.parse("10::/12")
190
+ net7 = NetAddr::IPv6Net.parse("20::/12")
191
+ net8 = NetAddr::IPv6Net.parse("8::/17")
192
+ assert_equal("1::/127", net1.summ(net2).to_s) # lesser to greater
193
+ assert_equal("1::/127", net2.summ(net3).to_s) # greater to lesser
194
+ assert_nil(net4.summ(net5)) # different nets
195
+ assert_nil(net6.summ(net7)) # consecutive but not within bit boundary
196
+ assert_nil(net4.summ(net8)) # within bit boundary, but not same size
197
+ end
198
+
199
+ end
@@ -0,0 +1,45 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require_relative "../lib/netaddr.rb"
4
+ require 'test/unit'
5
+
6
+ class TestMask128 < Test::Unit::TestCase
7
+ def test_new
8
+ m128 = NetAddr::Mask128.new(24)
9
+ assert_equal("/24", m128.to_s)
10
+ assert_equal(0xffffff00000000000000000000000000, m128.mask)
11
+
12
+ assert_raise(NetAddr::ValidationError){ NetAddr::Mask128.new(-1) }
13
+ assert_raise(NetAddr::ValidationError){ NetAddr::Mask128.new(129) }
14
+ assert_raise(NetAddr::ValidationError){ NetAddr::Mask128.new("/24") }
15
+ end
16
+
17
+ def test_parse
18
+ m128 = NetAddr::Mask128.parse("/24")
19
+ assert_equal("/24", m128.to_s)
20
+
21
+ m128 = NetAddr::Mask128.parse("24")
22
+ assert_equal("/24", m128.to_s)
23
+
24
+ assert_raise(NetAddr::ValidationError){ NetAddr::Mask128.parse("/129") }
25
+ end
26
+
27
+ def test_cmp
28
+ m = NetAddr::Mask128.new(24)
29
+ m2 = NetAddr::Mask128.new(25)
30
+ m3 = NetAddr::Mask128.new(23)
31
+ m4 = NetAddr::Mask128.new(24)
32
+ assert_equal(1, m.cmp(m2))
33
+ assert_equal(-1, m.cmp(m3))
34
+ assert_equal(0, m.cmp(m4))
35
+ end
36
+
37
+ def test_len
38
+ m = NetAddr::Mask128.new(65)
39
+ assert_equal(2**(128-65), m.len())
40
+
41
+ m = NetAddr::Mask128.new(64)
42
+ assert_equal(0, m.len())
43
+ end
44
+
45
+ end
@@ -0,0 +1,56 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require_relative "../lib/netaddr.rb"
4
+ require 'test/unit'
5
+
6
+ class TestMask32 < Test::Unit::TestCase
7
+ def test_new
8
+ m32 = NetAddr::Mask32.new(24)
9
+ assert_equal("/24", m32.to_s)
10
+ assert_equal(0xffffff00, m32.mask)
11
+
12
+ assert_raise(NetAddr::ValidationError){ NetAddr::Mask32.new(-1) }
13
+ assert_raise(NetAddr::ValidationError){ NetAddr::Mask32.new(33) }
14
+ assert_raise(NetAddr::ValidationError){ NetAddr::Mask32.new("/24") }
15
+ end
16
+
17
+ def test_parse
18
+ m32 = NetAddr::Mask32.parse("255.255.255.0")
19
+ assert_equal("/24", m32.to_s)
20
+
21
+ m32 = NetAddr::Mask32.parse("/24")
22
+ assert_equal("/24", m32.to_s)
23
+
24
+ assert_raise(NetAddr::ValidationError){ NetAddr::Mask32.parse("255.248.255.0") }
25
+ end
26
+
27
+ def test_cmp
28
+ m = NetAddr::Mask32.new(24)
29
+ m2 = NetAddr::Mask32.new(25)
30
+ m3 = NetAddr::Mask32.new(23)
31
+ m4 = NetAddr::Mask32.new(24)
32
+ assert_equal(1, m.cmp(m2))
33
+ assert_equal(-1, m.cmp(m3))
34
+ assert_equal(0, m.cmp(m4))
35
+ end
36
+
37
+ def test_extended
38
+ m32 = NetAddr::Mask32.new(24)
39
+ assert_equal("255.255.255.0", m32.extended)
40
+ end
41
+
42
+ def test_len
43
+ m = NetAddr::Mask32.new(24)
44
+ assert_equal(256, m.len())
45
+
46
+ m = NetAddr::Mask32.new(26)
47
+ assert_equal(64, m.len())
48
+
49
+ m = NetAddr::Mask32.new(32)
50
+ assert_equal(1, m.len())
51
+
52
+ m = NetAddr::Mask32.new(0)
53
+ assert_equal(0, m.len())
54
+ end
55
+
56
+ end
@@ -0,0 +1,148 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require_relative "../lib/netaddr.rb"
4
+ require 'test/unit'
5
+
6
+ class TestNetAddr < Test::Unit::TestCase
7
+
8
+ def test_parse_ip
9
+ assert_equal("128.0.0.1", NetAddr.parse_ip("128.0.0.1").to_s)
10
+ assert_equal("1::1", NetAddr.parse_ip("1::1").to_s)
11
+ end
12
+
13
+ def test_parse_net
14
+ assert_equal("128.0.0.1/32", NetAddr.parse_net("128.0.0.1/32").to_s)
15
+ assert_equal("1::/24", NetAddr.parse_net("1::1/24").to_s)
16
+ end
17
+
18
+ def test_ipv4_prefix_len
19
+ assert_equal(32,NetAddr.ipv4_prefix_len(1))
20
+ assert_equal(27,NetAddr.ipv4_prefix_len(30))
21
+ assert_equal(24,NetAddr.ipv4_prefix_len(254))
22
+ assert_equal(16,NetAddr.ipv4_prefix_len(0xfffe))
23
+ assert_equal(8,NetAddr.ipv4_prefix_len(0xfffffe))
24
+ assert_equal(0,NetAddr.ipv4_prefix_len(0xffffffff))
25
+ end
26
+
27
+ def test_sort_IPv4
28
+ ips = []
29
+ ["10.0.0.0","1.1.1.1","0.0.0.0","10.1.10.1"].each do |net|
30
+ ips.push(NetAddr::IPv4.parse(net))
31
+ end
32
+ sorted = NetAddr.sort_IPv4(ips)
33
+ expect = [ips[2],ips[1],ips[0],ips[3]]
34
+ assert_equal(expect, sorted)
35
+ end
36
+
37
+ def test_sort_IPv4Net
38
+ nets = []
39
+ ["10.0.0.0/24", "1.0.0.0/24", "10.0.0.0/8", "192.168.1.0/26", "8.8.8.8/32"].each do |net|
40
+ nets.push(NetAddr::IPv4Net.parse(net))
41
+ end
42
+ sorted = NetAddr.sort_IPv4Net(nets)
43
+ expect = [nets[1],nets[4],nets[0],nets[2],nets[3]]
44
+ assert_equal(expect, sorted)
45
+ end
46
+
47
+ def test_summ_IPv4Net
48
+ nets = []
49
+ ["10.0.0.0/29", "10.0.0.8/30", "10.0.0.12/30", "10.0.0.16/28", "10.0.0.32/27", "10.0.0.64/26", "10.0.0.128/25"].each do |net|
50
+ nets.push(NetAddr::IPv4Net.parse(net))
51
+ end
52
+ expect = ["10.0.0.0/24"]
53
+ i = 0
54
+ NetAddr.summ_IPv4Net(nets).each do |net|
55
+ assert_equal(expect[i],net.to_s)
56
+ i += 1
57
+ end
58
+
59
+ nets = []
60
+ ["10.0.0.0/24", "1.0.0.0/8", "3.4.5.6/32", "3.4.5.8/31", "0.0.0.0/0"].each do |net|
61
+ nets.push(NetAddr::IPv4Net.parse(net))
62
+ end
63
+ expect = ["0.0.0.0/0"]
64
+ i = 0
65
+ NetAddr.summ_IPv4Net(nets).each do |net|
66
+ assert_equal(expect[i],net.to_s)
67
+ i += 1
68
+ end
69
+
70
+ nets = []
71
+ ["10.0.1.0/25", "10.0.1.0/26", "10.0.0.16/28", "10.0.0.32/27", "10.0.0.128/26", "10.0.0.192/26", "10.0.0.32/27"].each do |net|
72
+ nets.push(NetAddr::IPv4Net.parse(net))
73
+ end
74
+ expect = ["10.0.0.16/28", "10.0.0.32/27", "10.0.0.128/25", "10.0.1.0/25"]
75
+ i = 0
76
+ NetAddr.summ_IPv4Net(nets).each do |net|
77
+ assert_equal(expect[i],net.to_s)
78
+ i += 1
79
+ end
80
+
81
+ nets = []
82
+ ["10.0.0.0/26","10.0.0.64/26","10.0.0.0/24","10.0.0.192/26","10.0.0.128/26"].each do |net| # test out of order
83
+ nets.push(NetAddr::IPv4Net.parse(net))
84
+ end
85
+ expect = ["10.0.0.0/24"]
86
+ i = 0
87
+ NetAddr.summ_IPv4Net(nets).each do |net|
88
+ assert_equal(expect[i],net.to_s)
89
+ i += 1
90
+ end
91
+ end
92
+
93
+ def test_sort_IPv6
94
+ ips = []
95
+ ["1::", "3::", "2::", "::", "::1"].each do |net|
96
+ ips.push(NetAddr::IPv6.parse(net))
97
+ end
98
+ sorted = NetAddr.sort_IPv6(ips)
99
+ expect = [ips[3],ips[4],ips[0],ips[2],ips[1]]
100
+ assert_equal(expect, sorted)
101
+ end
102
+
103
+ def test_sort_IPv6Net
104
+ nets = []
105
+ ["1::/64", "2::/64", "1::/16", "::", "::1"].each do |net|
106
+ nets.push(NetAddr::IPv6Net.parse(net))
107
+ end
108
+ sorted = NetAddr.sort_IPv6Net(nets)
109
+ expect = [nets[3],nets[4],nets[0],nets[2],nets[1]] # ::/128 ::1/128 1::/64 1::/16 2::/64
110
+ assert_equal(expect, sorted)
111
+ end
112
+
113
+ def test_summ_IPv6Net
114
+ nets = []
115
+ ["ff00::/13", "ff08::/14", "ff0c::/14", "ff10::/12", "ff20::/11", "ff40::/10", "ff80::/9"].each do |net|
116
+ nets.push(NetAddr::IPv6Net.parse(net))
117
+ end
118
+ expect = ["ff00::/8"]
119
+ i = 0
120
+ NetAddr.summ_IPv6Net(nets).each do |net|
121
+ assert_equal(expect[i],net.to_s)
122
+ i += 1
123
+ end
124
+
125
+ nets = []
126
+ ["2::/32", "::1", "fec0::/16", "1::/16", "::/0"].each do |net|
127
+ nets.push(NetAddr::IPv6Net.parse(net))
128
+ end
129
+ expect = ["::/0"]
130
+ i = 0
131
+ NetAddr.summ_IPv6Net(nets).each do |net|
132
+ assert_equal(expect[i],net.to_s)
133
+ i += 1
134
+ end
135
+
136
+ nets = []
137
+ ["ff80::/9", "ff10::/12", "ff80::/10", "ff20::/12", "fff0::/16", "fff1::/16", "ff80::/10"].each do |net|
138
+ nets.push(NetAddr::IPv6Net.parse(net))
139
+ end
140
+ expect = ["ff10::/12", "ff20::/12", "ff80::/9", "fff0::/15"]
141
+ i = 0
142
+ NetAddr.summ_IPv6Net(nets).each do |net|
143
+ assert_equal(expect[i],net.to_s)
144
+ i += 1
145
+ end
146
+ end
147
+
148
+ end
data/test/run_all.rb ADDED
@@ -0,0 +1,10 @@
1
+ require_relative "examples.rb"
2
+ require_relative "netaddr_test.rb"
3
+ require_relative "eui48_test.rb"
4
+ require_relative "eui64_test.rb"
5
+ require_relative "ipv4_test.rb"
6
+ require_relative "ipv4net_test.rb"
7
+ require_relative "ipv6_test.rb"
8
+ require_relative "ipv6net_test.rb"
9
+ require_relative "mask32_test.rb"
10
+ require_relative "mask128_test.rb"
metadata CHANGED
@@ -1,42 +1,47 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: netaddr
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.1
4
+ version: 2.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dustin Spinhirne
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-25 00:00:00.000000000 Z
11
+ date: 2021-10-07 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email:
15
15
  executables: []
16
16
  extensions: []
17
17
  extra_rdoc_files:
18
- - README
19
- - Errors
20
- - changelog
21
- - license
18
+ - README.md
19
+ - LICENSE
22
20
  files:
23
- - Errors
24
- - README
25
- - changelog
26
- - lib/cidr.rb
27
- - lib/cidr_shortcuts.rb
28
- - lib/eui.rb
29
- - lib/ip_math.rb
30
- - lib/methods.rb
21
+ - LICENSE
22
+ - README.md
23
+ - lib/eui48.rb
24
+ - lib/eui64.rb
25
+ - lib/ipv4.rb
26
+ - lib/ipv4net.rb
27
+ - lib/ipv6.rb
28
+ - lib/ipv6net.rb
29
+ - lib/mask128.rb
30
+ - lib/mask32.rb
31
31
  - lib/netaddr.rb
32
- - lib/tree.rb
33
- - lib/validation_shortcuts.rb
34
- - license
35
- - test/cidr_test.rb
36
- - test/eui_test.rb
37
- - test/methods_test.rb
38
- - test/tree_test.rb
39
- homepage:
32
+ - lib/util.rb
33
+ - test/eui48_test.rb
34
+ - test/eui64_test.rb
35
+ - test/examples.rb
36
+ - test/ipv4_test.rb
37
+ - test/ipv4net_test.rb
38
+ - test/ipv6_test.rb
39
+ - test/ipv6net_test.rb
40
+ - test/mask128_test.rb
41
+ - test/mask32_test.rb
42
+ - test/netaddr_test.rb
43
+ - test/run_all.rb
44
+ homepage: https://github.com/dspinhirne/netaddr-rb
40
45
  licenses:
41
46
  - Apache-2.0
42
47
  metadata: {}
@@ -55,9 +60,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
55
60
  - !ruby/object:Gem::Version
56
61
  version: '0'
57
62
  requirements: []
58
- rubyforge_project:
59
- rubygems_version: 2.2.2
63
+ rubygems_version: 3.1.2
60
64
  signing_key:
61
65
  specification_version: 4
62
- summary: A package for manipulating network addresses.
66
+ summary: A Ruby library for performing calculations on IPv4 and IPv6 subnets.
63
67
  test_files: []
data/Errors DELETED
@@ -1,7 +0,0 @@
1
- =Error Classes
2
-
3
- +-Exception
4
- +-StandardError
5
- +-BoundaryError => CIDR or EUI is out of bounds for a valid address
6
- +-ValidationError => CIDR or EUI failed validation checks
7
- +-VersionError => CIDR or EUI is of improper version for requested operation
data/README DELETED
@@ -1,17 +0,0 @@
1
- =Introduction
2
-
3
- NetAddr arose through my need as a network engineer for a
4
- back-end module that could easily handle such advanced tasks
5
- as automating the subnetting/supernetting
6
- of IP space, performing calculations on IP CIDR blocks, and other
7
- various items. At that time there were no modules that could
8
- do any of the things that I needed, so I set out to create my own.
9
- Since it has proven to be fairly useful to me, I have decided to share the
10
- code with the Ruby community.
11
-
12
- I have added things that I find immediately useful for me. I am
13
- open to suggestions if there is something that I could add to make
14
- your life easier.
15
-
16
- Dustin Spinhirne
17
-
data/changelog DELETED
@@ -1,58 +0,0 @@
1
- ==Version
2
- ====1.5.1
3
-
4
- ===Changes
5
- * fixed bug with NetAddr#merge (credit to Daniel Boughton)
6
-
7
-
8
- ==Version
9
- ====1.5.0
10
-
11
- ===Changes
12
- * fixed bug with EUI48#to_eui64 (credit to Erik Kline)
13
- * fixed bug with u/l bit toggle on EUI#link_local (credit to Erik Kline)
14
- * added EUI#to_ipv6
15
- * added NetAddr#supernets
16
-
17
-
18
- ==Version
19
- ====1.4.0
20
-
21
- ===Changes
22
- * Added additional options to NetAddr#sort
23
-
24
-
25
- ==Version
26
- ====1.3.0
27
-
28
- ===New Features
29
- * added CIDR#[]
30
- * added CIDR#succ (CIDR objects may now be used as args for the standard Ruby Range class)
31
- * added CIDR#allocate_rfc3531
32
- * added CIDR#to_i
33
- * added CIDRv6.unique_local
34
- * added EUI48#to_eui64
35
- * added EUI#to_i
36
- * added EUI#to_s
37
-
38
- ===Changes
39
- * deprecated 'packed' methods
40
-
41
-
42
- ==Version
43
- ====1.2.0
44
-
45
- ===Changes
46
- * CIDRv4#new and CIDRv6#new methods have been changed for the sake of speed improvements.
47
- Please use the CIDR#create method instead.
48
- * changes to CIDR#wildcard_mask
49
- * bug fix with validate_eui method
50
- * bug fix with validate_ip_addr
51
- * bug fix and *vast* simplification of NetAddr.merge
52
-
53
-
54
- ===New Features
55
- * speed improvements
56
- * added CIDR#set_wildcard_mask
57
- * added <=>, >, <, == methods to CIDR
58
- * NetAddr.merge now reports which CIDR addresses were used to create new summary addresses