ipaddr_list 0.0.1 → 0.0.2
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.
- data/ChangeLog +33 -2
- data/Rakefile +1 -1
- data/lib/ipaddr_list.rb +8 -3
- data/spec/ipaddr_list_spec.rb +23 -0
- metadata +1 -1
data/ChangeLog
CHANGED
@@ -1,4 +1,35 @@
|
|
1
|
-
|
1
|
+
commit 0c9a5e72de5b4cb1739e93964448318be4facf8b
|
2
|
+
Author: Keiji, Yoshimi <walf443@gmail.com>
|
3
|
+
Date: Sat Sep 13 06:52:05 2008 +0900
|
2
4
|
|
3
|
-
|
5
|
+
added documentation.
|
4
6
|
|
7
|
+
commit 95f2be45d872dc2222982cd4953b88c733405842
|
8
|
+
Author: Keiji, Yoshimi <walf443@gmail.com>
|
9
|
+
Date: Sat Sep 13 06:51:47 2008 +0900
|
10
|
+
|
11
|
+
added development_dependency.
|
12
|
+
|
13
|
+
commit 92e40373def8978b74f87ef5ce80e215a445edb6
|
14
|
+
Author: Keiji, Yoshimi <walf443@gmail.com>
|
15
|
+
Date: Sat Sep 13 06:34:19 2008 +0900
|
16
|
+
|
17
|
+
fixed warnings.
|
18
|
+
|
19
|
+
commit 6b144d023d387993daa4ad7db3f2945c55a4a590
|
20
|
+
Author: Keiji, Yoshimi <walf443@gmail.com>
|
21
|
+
Date: Fri Sep 5 09:17:58 2008 +0900
|
22
|
+
|
23
|
+
added algorithm Linear search.
|
24
|
+
|
25
|
+
commit 9143d6eea71c652cb4bd6d9869f3c876aeebcfd0
|
26
|
+
Author: Keiji, Yoshimi <walf443@gmail.com>
|
27
|
+
Date: Fri Sep 5 09:16:29 2008 +0900
|
28
|
+
|
29
|
+
added benchmark.
|
30
|
+
|
31
|
+
commit 3474ddd98bbaa710a10d020c66fa0b0b3a040a47
|
32
|
+
Author: Keiji, Yoshimi <walf443@gmail.com>
|
33
|
+
Date: Fri Sep 5 01:36:37 2008 +0900
|
34
|
+
|
35
|
+
initial import.
|
data/Rakefile
CHANGED
data/lib/ipaddr_list.rb
CHANGED
@@ -134,12 +134,17 @@ class IPAddrList
|
|
134
134
|
# binary search
|
135
135
|
# SEE ALSO: http://dsas.blog.klab.org/archives/51293334.html
|
136
136
|
def binary_search ip, &block
|
137
|
-
ipaddr =
|
137
|
+
ipaddr = nil
|
138
|
+
if ip.kind_of? IPAddr
|
139
|
+
ipaddr = ip
|
140
|
+
else
|
141
|
+
ipaddr = IPAddr.new(ip)
|
142
|
+
end
|
138
143
|
min_idx = 0
|
139
144
|
max_idx = @ip_list.size - 1
|
140
|
-
if @ip_list[max_idx]
|
145
|
+
if @ip_list[max_idx] < ipaddr
|
141
146
|
min_idx = max_idx
|
142
|
-
elsif @ip_list[min_idx]
|
147
|
+
elsif @ip_list[min_idx] > ipaddr
|
143
148
|
max_idx = min_idx
|
144
149
|
else
|
145
150
|
span = max_idx - min_idx
|
data/spec/ipaddr_list_spec.rb
CHANGED
@@ -2,4 +2,27 @@ require File.join(File.dirname(__FILE__), 'spec_helper')
|
|
2
2
|
require 'ipaddr_list'
|
3
3
|
|
4
4
|
describe IPAddrList do
|
5
|
+
before do
|
6
|
+
@ipaddr_list = %w( 192.168.0.1 127.0.0.1 )
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'should include? in :BinarySearch' do
|
10
|
+
ipaddr_list = IPAddrList.new(@ipaddr_list, :BinarySearch)
|
11
|
+
ipaddr_list.should include('127.0.0.1')
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should not include? in :BinarySearch' do
|
15
|
+
ipaddr_list = IPAddrList.new(@ipaddr_list, :BinarySearch)
|
16
|
+
ipaddr_list.should_not include('192.168.1.1')
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'should include? in :LinearSearch' do
|
20
|
+
ipaddr_list = IPAddrList.new(@ipaddr_list, :LinearSearch)
|
21
|
+
ipaddr_list.should include('127.0.0.1')
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should include? in :LinearSearch' do
|
25
|
+
ipaddr_list = IPAddrList.new(@ipaddr_list, :LinearSearch)
|
26
|
+
ipaddr_list.should_not include('192.168.1.1')
|
27
|
+
end
|
5
28
|
end
|