rpatricia 0.04 → 0.05

Sign up to get free protection for your applications and to get access to all the features.
data/Changes CHANGED
@@ -1,3 +1,7 @@
1
+ 0.05 2010/03/12
2
+ - reorganized directory layout
3
+ no chance of accidentally having 'extconf' in the require path
4
+
1
5
  0.04 2008/2/19
2
6
  - fixed the bug of "clear" method (destroy)
3
7
  node data were not cleared correctly
File without changes
File without changes
File without changes
@@ -0,0 +1,43 @@
1
+ # to build a gem:
2
+ # gem build rpatricia.gemspec
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = %q{rpatricia}
6
+ s.version = %q{0.05} # remember to update Changes if this is changed
7
+
8
+ s.homepage = "http://www.goto.info.waseda.ac.jp/~tatsuya/rpatricia/"
9
+
10
+ # Tatsuya wrote the extension, Eric gemified this
11
+ s.authors = [ "Tatsuya Mori", "Eric Wong" ]
12
+
13
+ s.date = Time.now.utc.strftime('%Y-%m-%d')
14
+ s.summary = %q{module for fast IP address/prefix lookups}
15
+ s.description = %q{
16
+ This is a ruby wrapper of Net::Patricia, which has been developed by
17
+ Dave Plonka. The original Net::Patricia and its C API are available
18
+ from:
19
+ http://net.doit.wisc.edu/~plonka/Net-Patricia/
20
+
21
+ Net::Patricia is a module for fast IP address/prefix lookups.
22
+ I have modified some interfaces for the Ruby wrapper version.
23
+ }.strip
24
+
25
+ # bother Eric for all gem issues
26
+ s.email = %q{normalperson@yhbt.net}
27
+
28
+ # generated using "git ls-files" from Eric's git repo
29
+ s.files = %w(
30
+ Changes
31
+ README
32
+ TODO
33
+ copyright
34
+ credits.txt
35
+ ext/rpatricia/extconf.rb
36
+ ext/rpatricia/patricia.c
37
+ ext/rpatricia/patricia.h
38
+ ext/rpatricia/rpatricia.c
39
+ rpatricia.gemspec
40
+ test.rb
41
+ )
42
+ s.extensions = %w(ext/rpatricia/extconf.rb)
43
+ end
data/test.rb ADDED
@@ -0,0 +1,63 @@
1
+ require 'rpatricia'
2
+
3
+ def my_test condition
4
+ puts (condition)? "ok!" : "error!"
5
+ end
6
+
7
+ puts "test: creating Patricia object"
8
+ my_test(t = Patricia.new)
9
+
10
+ puts "test: adding 127.0.0.0/24"
11
+ my_test(n = t.add("127.0.0.0/24"))
12
+
13
+ puts " data of added node = #{n.data}"
14
+ puts " prefix of added node = #{n.prefix}"
15
+ puts " network of added node = #{n.network}"
16
+ puts " prefixlen of added node = #{n.prefixlen}"
17
+
18
+ puts "adding 192.168.1.0/24, 192.168.2.0/24, 192.168.3.100"
19
+ t.add("192.168.1.0/24")
20
+ t.add("192.168.2.0/24")
21
+ t.add("192.168.3.100")
22
+
23
+ puts "test: match_best 127.0.0.1"
24
+ my_test(n = t.match_best("127.0.0.1"))
25
+
26
+ puts "test: match_exact 192.168.3.100"
27
+ my_test(n = t.match_best("192.168.3.100"))
28
+
29
+ puts " data of matched node = #{n.data}"
30
+ puts " prefix of matched node = #{n.prefix}"
31
+ puts " network of matched node = #{n.network}"
32
+ puts " prefixlen of matched node = #{n.prefixlen}"
33
+
34
+ puts "test: adding prefix 10.0.0.0/8 with user data of 'pref_10.0.0.0/8'"
35
+ my_test(n = t.add("10.0.0.0/8", "pref_10"))
36
+
37
+ puts " data of added node = #{n.data}"
38
+ puts " prefix of added node = #{n.prefix}"
39
+ puts " network of added node = #{n.network}"
40
+ puts " prefixlen of added node = #{n.prefixlen}"
41
+
42
+ puts "test: match string 10.0.0.1"
43
+ my_test(n = t.match_best("10.0.0.1"))
44
+
45
+ puts " data of matched node = #{n.data}"
46
+ puts " prefix of matched node = #{n.prefix}"
47
+ puts " network of matched node = #{n.network}"
48
+ puts " prefixlen of matched node = #{n.prefixlen}"
49
+
50
+ puts "test: remove '42.0.0.0/8'; should return nil"
51
+ my_test(!t.remove("42.0.0.0/8"))
52
+
53
+ puts "test: remove '10.0.0.0/8'"
54
+ my_test(n= t.remove("10.0.0.0/8"))
55
+
56
+
57
+ puts "test: number of nodes in the tree should be '4'"
58
+ my_test(4 == t.num_nodes)
59
+
60
+ puts "test: showing all nodes"
61
+ t.show_nodes
62
+
63
+ t.destroy
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rpatricia
3
3
  version: !ruby/object:Gem::Version
4
- version: "0.04"
4
+ version: "0.05"
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tatsuya Mori
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2010-03-12 00:00:00 +00:00
13
+ date: 2010-03-15 00:00:00 +00:00
14
14
  default_executable:
15
15
  dependencies: []
16
16
 
@@ -26,7 +26,7 @@ email: normalperson@yhbt.net
26
26
  executables: []
27
27
 
28
28
  extensions:
29
- - extconf.rb
29
+ - ext/rpatricia/extconf.rb
30
30
  extra_rdoc_files: []
31
31
 
32
32
  files:
@@ -35,10 +35,12 @@ files:
35
35
  - TODO
36
36
  - copyright
37
37
  - credits.txt
38
- - extconf.rb
39
- - patricia.c
40
- - patricia.h
41
- - rpatricia.c
38
+ - ext/rpatricia/extconf.rb
39
+ - ext/rpatricia/patricia.c
40
+ - ext/rpatricia/patricia.h
41
+ - ext/rpatricia/rpatricia.c
42
+ - rpatricia.gemspec
43
+ - test.rb
42
44
  has_rdoc: true
43
45
  homepage: http://www.goto.info.waseda.ac.jp/~tatsuya/rpatricia/
44
46
  licenses: []
@@ -47,7 +49,7 @@ post_install_message:
47
49
  rdoc_options: []
48
50
 
49
51
  require_paths:
50
- - .
52
+ - lib
51
53
  required_ruby_version: !ruby/object:Gem::Requirement
52
54
  requirements:
53
55
  - - ">="