tyler-trie 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. data/VERSION.yml +4 -0
  2. data/ext/libdatrie/AUTHORS +1 -0
  3. data/ext/libdatrie/COPYING +510 -0
  4. data/ext/libdatrie/ChangeLog +410 -0
  5. data/ext/libdatrie/INSTALL +236 -0
  6. data/ext/libdatrie/Makefile.am +5 -0
  7. data/ext/libdatrie/Makefile.in +661 -0
  8. data/ext/libdatrie/NEWS +27 -0
  9. data/ext/libdatrie/README +32 -0
  10. data/ext/libdatrie/aclocal.m4 +7431 -0
  11. data/ext/libdatrie/config.guess +1516 -0
  12. data/ext/libdatrie/config.h.in +74 -0
  13. data/ext/libdatrie/config.sub +1626 -0
  14. data/ext/libdatrie/configure +22008 -0
  15. data/ext/libdatrie/configure.ac +71 -0
  16. data/ext/libdatrie/datrie.pc.in +11 -0
  17. data/ext/libdatrie/datrie/Makefile.am +35 -0
  18. data/ext/libdatrie/datrie/Makefile.in +522 -0
  19. data/ext/libdatrie/datrie/alpha-map.c +170 -0
  20. data/ext/libdatrie/datrie/alpha-map.h +36 -0
  21. data/ext/libdatrie/datrie/darray.c +674 -0
  22. data/ext/libdatrie/datrie/darray.h +229 -0
  23. data/ext/libdatrie/datrie/fileutils.c +151 -0
  24. data/ext/libdatrie/datrie/fileutils.h +36 -0
  25. data/ext/libdatrie/datrie/libdatrie.def +31 -0
  26. data/ext/libdatrie/datrie/sb-trie.c +331 -0
  27. data/ext/libdatrie/datrie/sb-trie.h +279 -0
  28. data/ext/libdatrie/datrie/tail.c +344 -0
  29. data/ext/libdatrie/datrie/tail.h +200 -0
  30. data/ext/libdatrie/datrie/trie-private.h +31 -0
  31. data/ext/libdatrie/datrie/trie.c +413 -0
  32. data/ext/libdatrie/datrie/trie.h +270 -0
  33. data/ext/libdatrie/datrie/triedefs.h +63 -0
  34. data/ext/libdatrie/datrie/typedefs.h +113 -0
  35. data/ext/libdatrie/depcomp +530 -0
  36. data/ext/libdatrie/doc/Doxyfile.in +244 -0
  37. data/ext/libdatrie/doc/Makefile.am +29 -0
  38. data/ext/libdatrie/doc/Makefile.in +352 -0
  39. data/ext/libdatrie/install-sh +323 -0
  40. data/ext/libdatrie/ltmain.sh +6938 -0
  41. data/ext/libdatrie/man/Makefile.am +4 -0
  42. data/ext/libdatrie/man/Makefile.in +381 -0
  43. data/ext/libdatrie/man/trietool.1 +107 -0
  44. data/ext/libdatrie/missing +360 -0
  45. data/ext/libdatrie/tools/Makefile.am +7 -0
  46. data/ext/libdatrie/tools/Makefile.in +460 -0
  47. data/ext/libdatrie/tools/trietool.c +308 -0
  48. data/ext/trie/extconf.rb +12 -0
  49. data/ext/trie/trie.c +174 -0
  50. data/lib/trie.rb +1 -0
  51. data/spec/test-trie/README +1 -0
  52. data/spec/trie_spec.rb +79 -0
  53. metadata +139 -0
data/lib/trie.rb ADDED
@@ -0,0 +1 @@
1
+ require File.dirname(__FILE__) + '/../ext/trie/trie'
@@ -0,0 +1 @@
1
+ This directory is used to store Trie files while running the specs. Don't delete it.
data/spec/trie_spec.rb ADDED
@@ -0,0 +1,79 @@
1
+ require 'trie'
2
+
3
+ TRIE_PATH = 'spec/test-trie'
4
+
5
+ describe Trie do
6
+ before :each do
7
+ @trie = Trie.new(TRIE_PATH);
8
+ @trie.add('rocket')
9
+ @trie.add('rock')
10
+ @trie.add('frederico')
11
+ end
12
+
13
+ after :each do
14
+ @trie.close
15
+ File.delete('spec/test-trie/trie.br')
16
+ File.delete('spec/test-trie/trie.tl')
17
+ File.delete('spec/test-trie/trie.sbm')
18
+ end
19
+
20
+ describe :path do
21
+ it 'returns the correct path' do
22
+ @trie.path.should == TRIE_PATH
23
+ end
24
+ end
25
+
26
+ describe :has_key? do
27
+ it 'returns true for words in the trie' do
28
+ @trie.has_key?('rocket').should be_true
29
+ end
30
+
31
+ it 'returns nil for words that are not in the trie' do
32
+ @trie.has_key?('not_in_the_trie').should be_nil
33
+ end
34
+ end
35
+
36
+ describe :get do
37
+ it 'returns -1 for words in the trie without a weight' do
38
+ @trie.get('rocket').should == -1
39
+ end
40
+
41
+ it 'returns nil if the word is not in the trie' do
42
+ @trie.get('not_in_the_trie').should be_nil
43
+ end
44
+ end
45
+
46
+ describe :add do
47
+ it 'adds a word to the trie' do
48
+ @trie.add('forsooth').should == true
49
+ @trie.get('forsooth').should == -1
50
+ end
51
+ end
52
+
53
+ describe :delete do
54
+ it 'deletes a word from the trie' do
55
+ @trie.delete('rocket').should == true
56
+ @trie.has_key?('rocket').should be_nil
57
+ end
58
+ end
59
+
60
+ describe :children do
61
+ it 'returns all words beginning with a given prefix' do
62
+ children = @trie.children('roc')
63
+ children.size.should == 2
64
+ children.should include('rock')
65
+ children.should include('rocket')
66
+ end
67
+
68
+ it 'returns nil if prefix does not exist' do
69
+ @trie.children('ajsodij').should be_nil
70
+ end
71
+
72
+ it 'includes the prefix if the prefix is a word' do
73
+ children = @trie.children('rock')
74
+ children.size.should == 2
75
+ children.should include('rock')
76
+ children.should include('rocket')
77
+ end
78
+ end
79
+ end
metadata ADDED
@@ -0,0 +1,139 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tyler-trie
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Tyler McMullen
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-03-08 00:00:00 -08:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: TODO
17
+ email: tyler@scribd.com
18
+ executables: []
19
+
20
+ extensions:
21
+ - ext/trie/extconf.rb
22
+ extra_rdoc_files: []
23
+
24
+ files:
25
+ - VERSION.yml
26
+ - lib/trie.rb
27
+ - spec/test-trie
28
+ - spec/test-trie/README
29
+ - spec/trie_spec.rb
30
+ - ext/libdatrie
31
+ - ext/libdatrie/aclocal.m4
32
+ - ext/libdatrie/AUTHORS
33
+ - ext/libdatrie/ChangeLog
34
+ - ext/libdatrie/config.guess
35
+ - ext/libdatrie/config.h
36
+ - ext/libdatrie/config.h.in
37
+ - ext/libdatrie/config.log
38
+ - ext/libdatrie/config.status
39
+ - ext/libdatrie/config.sub
40
+ - ext/libdatrie/configure
41
+ - ext/libdatrie/configure.ac
42
+ - ext/libdatrie/COPYING
43
+ - ext/libdatrie/datrie
44
+ - ext/libdatrie/datrie/alpha-map.c
45
+ - ext/libdatrie/datrie/alpha-map.h
46
+ - ext/libdatrie/datrie/alpha-map.lo
47
+ - ext/libdatrie/datrie/alpha-map.o
48
+ - ext/libdatrie/datrie/darray.c
49
+ - ext/libdatrie/datrie/darray.h
50
+ - ext/libdatrie/datrie/darray.lo
51
+ - ext/libdatrie/datrie/darray.o
52
+ - ext/libdatrie/datrie/fileutils.c
53
+ - ext/libdatrie/datrie/fileutils.h
54
+ - ext/libdatrie/datrie/fileutils.lo
55
+ - ext/libdatrie/datrie/fileutils.o
56
+ - ext/libdatrie/datrie/libdatrie.def
57
+ - ext/libdatrie/datrie/libdatrie.la
58
+ - ext/libdatrie/datrie/Makefile
59
+ - ext/libdatrie/datrie/Makefile.am
60
+ - ext/libdatrie/datrie/Makefile.in
61
+ - ext/libdatrie/datrie/sb-trie.c
62
+ - ext/libdatrie/datrie/sb-trie.h
63
+ - ext/libdatrie/datrie/sb-trie.lo
64
+ - ext/libdatrie/datrie/sb-trie.o
65
+ - ext/libdatrie/datrie/tail.c
66
+ - ext/libdatrie/datrie/tail.h
67
+ - ext/libdatrie/datrie/tail.lo
68
+ - ext/libdatrie/datrie/tail.o
69
+ - ext/libdatrie/datrie/trie-private.h
70
+ - ext/libdatrie/datrie/trie.c
71
+ - ext/libdatrie/datrie/trie.h
72
+ - ext/libdatrie/datrie/trie.lo
73
+ - ext/libdatrie/datrie/trie.o
74
+ - ext/libdatrie/datrie/triedefs.h
75
+ - ext/libdatrie/datrie/typedefs.h
76
+ - ext/libdatrie/datrie.pc
77
+ - ext/libdatrie/datrie.pc.in
78
+ - ext/libdatrie/depcomp
79
+ - ext/libdatrie/doc
80
+ - ext/libdatrie/doc/Doxyfile
81
+ - ext/libdatrie/doc/Doxyfile.in
82
+ - ext/libdatrie/doc/Makefile
83
+ - ext/libdatrie/doc/Makefile.am
84
+ - ext/libdatrie/doc/Makefile.in
85
+ - ext/libdatrie/INSTALL
86
+ - ext/libdatrie/install-sh
87
+ - ext/libdatrie/libtool
88
+ - ext/libdatrie/ltmain.sh
89
+ - ext/libdatrie/Makefile
90
+ - ext/libdatrie/Makefile.am
91
+ - ext/libdatrie/Makefile.in
92
+ - ext/libdatrie/man
93
+ - ext/libdatrie/man/Makefile
94
+ - ext/libdatrie/man/Makefile.am
95
+ - ext/libdatrie/man/Makefile.in
96
+ - ext/libdatrie/man/trietool.1
97
+ - ext/libdatrie/missing
98
+ - ext/libdatrie/NEWS
99
+ - ext/libdatrie/README
100
+ - ext/libdatrie/stamp-h1
101
+ - ext/libdatrie/tools
102
+ - ext/libdatrie/tools/Makefile
103
+ - ext/libdatrie/tools/Makefile.am
104
+ - ext/libdatrie/tools/Makefile.in
105
+ - ext/libdatrie/tools/trietool
106
+ - ext/libdatrie/tools/trietool.c
107
+ - ext/libdatrie/tools/trietool.o
108
+ - ext/trie
109
+ - ext/trie/extconf.rb
110
+ - ext/trie/trie.c
111
+ has_rdoc: false
112
+ homepage: http://github.com/tyler/trie
113
+ post_install_message:
114
+ rdoc_options: []
115
+
116
+ require_paths:
117
+ - lib
118
+ - ext
119
+ required_ruby_version: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: "0"
124
+ version:
125
+ required_rubygems_version: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ version: "0"
130
+ version:
131
+ requirements: []
132
+
133
+ rubyforge_project:
134
+ rubygems_version: 1.2.0
135
+ signing_key:
136
+ specification_version: 2
137
+ summary: TODO
138
+ test_files: []
139
+