cdb-full 0.5a

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.
Files changed (88) hide show
  1. data/COPYING +6 -0
  2. data/FILES +88 -0
  3. data/README +163 -0
  4. data/VERSION +1 -0
  5. data/cdb-0.75/CHANGES +16 -0
  6. data/cdb-0.75/FILES +78 -0
  7. data/cdb-0.75/Makefile +320 -0
  8. data/cdb-0.75/README +7 -0
  9. data/cdb-0.75/SYSDEPS +3 -0
  10. data/cdb-0.75/TARGETS +66 -0
  11. data/cdb-0.75/TODO +1 -0
  12. data/cdb-0.75/VERSION +1 -0
  13. data/cdb-0.75/alloc.c +32 -0
  14. data/cdb-0.75/alloc.h +8 -0
  15. data/cdb-0.75/auto-str.c +44 -0
  16. data/cdb-0.75/auto_home.h +6 -0
  17. data/cdb-0.75/buffer.c +10 -0
  18. data/cdb-0.75/buffer.h +56 -0
  19. data/cdb-0.75/buffer_0.c +12 -0
  20. data/cdb-0.75/buffer_1.c +6 -0
  21. data/cdb-0.75/buffer_1s.c +6 -0
  22. data/cdb-0.75/buffer_2.c +6 -0
  23. data/cdb-0.75/buffer_copy.c +16 -0
  24. data/cdb-0.75/buffer_get.c +67 -0
  25. data/cdb-0.75/buffer_put.c +88 -0
  26. data/cdb-0.75/byte.h +13 -0
  27. data/cdb-0.75/byte_copy.c +14 -0
  28. data/cdb-0.75/byte_cr.c +16 -0
  29. data/cdb-0.75/byte_diff.c +16 -0
  30. data/cdb-0.75/cdb.c +136 -0
  31. data/cdb-0.75/cdb.h +37 -0
  32. data/cdb-0.75/cdb_hash.c +21 -0
  33. data/cdb-0.75/cdb_make.c +153 -0
  34. data/cdb-0.75/cdb_make.h +39 -0
  35. data/cdb-0.75/cdbdump.c +83 -0
  36. data/cdb-0.75/cdbget.c +67 -0
  37. data/cdb-0.75/cdbmake-12.sh +8 -0
  38. data/cdb-0.75/cdbmake-sv.sh +22 -0
  39. data/cdb-0.75/cdbmake.c +110 -0
  40. data/cdb-0.75/cdbstats.c +125 -0
  41. data/cdb-0.75/cdbtest.c +119 -0
  42. data/cdb-0.75/choose.sh +18 -0
  43. data/cdb-0.75/conf-cc +3 -0
  44. data/cdb-0.75/conf-home +3 -0
  45. data/cdb-0.75/conf-ld +3 -0
  46. data/cdb-0.75/error.c +109 -0
  47. data/cdb-0.75/error.h +25 -0
  48. data/cdb-0.75/error_str.c +271 -0
  49. data/cdb-0.75/exit.h +6 -0
  50. data/cdb-0.75/find-systype.sh +159 -0
  51. data/cdb-0.75/fmt.h +25 -0
  52. data/cdb-0.75/fmt_ulong.c +13 -0
  53. data/cdb-0.75/hier.c +15 -0
  54. data/cdb-0.75/install.c +149 -0
  55. data/cdb-0.75/instcheck.c +108 -0
  56. data/cdb-0.75/open.h +10 -0
  57. data/cdb-0.75/open_read.c +6 -0
  58. data/cdb-0.75/open_trunc.c +6 -0
  59. data/cdb-0.75/random.cdb +0 -0
  60. data/cdb-0.75/readwrite.h +7 -0
  61. data/cdb-0.75/rts.exp +251 -0
  62. data/cdb-0.75/rts.sh +1 -0
  63. data/cdb-0.75/rts.tests +210 -0
  64. data/cdb-0.75/scan.h +28 -0
  65. data/cdb-0.75/scan_ulong.c +11 -0
  66. data/cdb-0.75/seek.h +15 -0
  67. data/cdb-0.75/seek_cur.c +7 -0
  68. data/cdb-0.75/seek_set.c +7 -0
  69. data/cdb-0.75/str.h +14 -0
  70. data/cdb-0.75/str_len.c +14 -0
  71. data/cdb-0.75/strerr.h +78 -0
  72. data/cdb-0.75/strerr_die.c +31 -0
  73. data/cdb-0.75/strerr_sys.c +12 -0
  74. data/cdb-0.75/testzero.c +35 -0
  75. data/cdb-0.75/trycpp.c +7 -0
  76. data/cdb-0.75/tryulong32.c +11 -0
  77. data/cdb-0.75/uint32.h1 +11 -0
  78. data/cdb-0.75/uint32.h2 +11 -0
  79. data/cdb-0.75/uint32_pack.c +21 -0
  80. data/cdb-0.75/uint32_unpack.c +31 -0
  81. data/cdb-0.75/warn-auto.sh +2 -0
  82. data/cdb-0.75/x86cpuid.c +38 -0
  83. data/cdb.c +372 -0
  84. data/depend +1 -0
  85. data/extconf.rb +11 -0
  86. data/lib/cdb.rb +90 -0
  87. data/sample/sample.rb +35 -0
  88. metadata +152 -0
data/depend ADDED
@@ -0,0 +1 @@
1
+ cdb.so : cdb.c $(hdrdir)/ruby.h
@@ -0,0 +1,11 @@
1
+ require 'mkmf'
2
+
3
+ system('ln -sf cdb-0.75 cdb')
4
+ system('make -C cdb') or abort "failed to make cdb"
5
+
6
+ $LOCAL_LIBS += ['cdb.a', 'alloc.a', 'error.o', 'seek_set.o', 'byte_copy.o',
7
+ 'byte_diff.o', 'buffer_get.o', 'buffer_put.o', 'str_len.o',
8
+ 'byte_cr.o', 'buffer.o', 'uint32_pack.o', 'uint32_unpack.o'].
9
+ map { |s| 'cdb/' + s }.join(' ')
10
+ create_makefile('cdb')
11
+
@@ -0,0 +1,90 @@
1
+ require 'cdb.so'
2
+
3
+ class CDB
4
+ def CDB.each(file, key = nil)
5
+ CDB.open(file) do |db|
6
+ if key
7
+ db.each(key) do |d|
8
+ yield d
9
+ end
10
+ else
11
+ db.each do |k, d|
12
+ yield k, d
13
+ end
14
+ end
15
+ end
16
+ end
17
+
18
+ def CDB.create(file, tmp, mode = 0644)
19
+ CDBMake.open(tmp, mode) do |cm|
20
+ yield cm
21
+ end
22
+ File.rename(tmp, file)
23
+ end
24
+
25
+ def CDB.edit(file, tmp, mode = nil)
26
+ mode ||= File.stat(file).mode
27
+ CDB.open(file) do |c|
28
+ ary = c.to_ary
29
+ yield ary
30
+ CDBMake.open(tmp, mode) do |cm|
31
+ ary.each do |k, d|
32
+ cm.add(k, d)
33
+ end
34
+ end
35
+ end
36
+ File.rename(tmp, file)
37
+ end
38
+
39
+ def CDB.update(file, tmp, mode = nil)
40
+ mode ||= File.stat(file).mode
41
+ CDB.open(file) do |c|
42
+ CDBMake.open(tmp, mode) do |cm|
43
+ yield(c, cm)
44
+ end
45
+ end
46
+ File.rename(tmp, file)
47
+ end
48
+
49
+ def CDB.dump(file)
50
+ CDB.open(file) do |c|
51
+ str = %q()
52
+ c.each do |k, d|
53
+ str << %(+#{k.length},#{d.length}:#{k}->#{d}\n)
54
+ end
55
+ return str
56
+ end
57
+ end
58
+
59
+ def to_hash
60
+ hash = Hash.new
61
+ each do |k, d|
62
+ hash[k] = d
63
+ end
64
+ return hash
65
+ end
66
+
67
+ def to_ary
68
+ ary = CDBEditable.new
69
+ each do |k, d|
70
+ ary.push [k, d]
71
+ end
72
+ return ary
73
+ end
74
+ end
75
+
76
+
77
+
78
+ class CDBEditable < Array
79
+ def [](key)
80
+ assoc(key)[1]
81
+ end
82
+
83
+ def []=(key, data)
84
+ push [key, data]
85
+ end
86
+
87
+ alias_method(:add, :[]=)
88
+ end
89
+
90
+
@@ -0,0 +1,35 @@
1
+ #!/usr/local/bin/ruby
2
+
3
+ require 'cdb'
4
+
5
+ CDB.create('sample.cdb', 'tmp', 0600) do |data|
6
+ data['eins'] = 'ichi'
7
+ data['zwei'] = 'ni'
8
+ data['drei'] = 'san'
9
+ data['vier'] = 'yon'
10
+ end
11
+
12
+ print CDB.dump('sample.cdb'), "\n"
13
+
14
+
15
+ CDB.update('sample.cdb', 'tmp') do |read, write|
16
+ write['one'] = read['eins']
17
+ write['two'] = read['zwei']
18
+ write['three'] = read['drei']
19
+ write['four'] = read['vier']
20
+ end
21
+
22
+ print CDB.dump('sample.cdb'), "\n"
23
+
24
+
25
+ CDB.edit('sample.cdb', 'tmp') do |data|
26
+ data['five'] = 'go'
27
+ data['six'] = 'roku'
28
+ data['seven'] = 'nana'
29
+ data['eight'] = 'hachi'
30
+ data.delete_if { |a,| /t/.match(a) }
31
+ end
32
+
33
+ print CDB.dump('sample.cdb'), "\n"
34
+
35
+
metadata ADDED
@@ -0,0 +1,152 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cdb-full
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: true
5
+ segments:
6
+ - 0
7
+ - 5a
8
+ version: 0.5a
9
+ platform: ruby
10
+ authors:
11
+ - Kazuteru Okahashi
12
+ - Rich Lane
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-11-11 00:00:00 -08:00
18
+ default_executable:
19
+ dependencies: []
20
+
21
+ description:
22
+ email: rlane@club.cc.cmu.edu
23
+ executables: []
24
+
25
+ extensions:
26
+ - extconf.rb
27
+ extra_rdoc_files: []
28
+
29
+ files:
30
+ - COPYING
31
+ - FILES
32
+ - README
33
+ - VERSION
34
+ - cdb-0.75/uint32_unpack.c
35
+ - cdb-0.75/TODO
36
+ - cdb-0.75/CHANGES
37
+ - cdb-0.75/VERSION
38
+ - cdb-0.75/FILES
39
+ - cdb-0.75/SYSDEPS
40
+ - cdb-0.75/TARGETS
41
+ - cdb-0.75/conf-cc
42
+ - cdb-0.75/conf-ld
43
+ - cdb-0.75/conf-home
44
+ - cdb-0.75/Makefile
45
+ - cdb-0.75/cdbget.c
46
+ - cdb-0.75/cdbmake.c
47
+ - cdb-0.75/cdbdump.c
48
+ - cdb-0.75/cdbstats.c
49
+ - cdb-0.75/cdbtest.c
50
+ - cdb-0.75/cdbmake-12.sh
51
+ - cdb-0.75/cdbmake-sv.sh
52
+ - cdb-0.75/cdb.h
53
+ - cdb-0.75/cdb.c
54
+ - cdb-0.75/cdb_hash.c
55
+ - cdb-0.75/cdb_make.h
56
+ - cdb-0.75/cdb_make.c
57
+ - cdb-0.75/rts.sh
58
+ - cdb-0.75/rts.tests
59
+ - cdb-0.75/rts.exp
60
+ - cdb-0.75/testzero.c
61
+ - cdb-0.75/random.cdb
62
+ - cdb-0.75/choose.sh
63
+ - cdb-0.75/warn-auto.sh
64
+ - cdb-0.75/find-systype.sh
65
+ - cdb-0.75/trycpp.c
66
+ - cdb-0.75/x86cpuid.c
67
+ - cdb-0.75/alloc.c
68
+ - cdb-0.75/alloc.h
69
+ - cdb-0.75/auto-str.c
70
+ - cdb-0.75/auto_home.h
71
+ - cdb-0.75/buffer.c
72
+ - cdb-0.75/buffer.h
73
+ - cdb-0.75/buffer_0.c
74
+ - cdb-0.75/buffer_1.c
75
+ - cdb-0.75/buffer_1s.c
76
+ - cdb-0.75/buffer_2.c
77
+ - cdb-0.75/buffer_copy.c
78
+ - cdb-0.75/buffer_get.c
79
+ - cdb-0.75/buffer_put.c
80
+ - cdb-0.75/byte.h
81
+ - cdb-0.75/byte_copy.c
82
+ - cdb-0.75/byte_cr.c
83
+ - cdb-0.75/byte_diff.c
84
+ - cdb-0.75/error.c
85
+ - cdb-0.75/error.h
86
+ - cdb-0.75/error_str.c
87
+ - cdb-0.75/exit.h
88
+ - cdb-0.75/fmt.h
89
+ - cdb-0.75/fmt_ulong.c
90
+ - cdb-0.75/hier.c
91
+ - cdb-0.75/install.c
92
+ - cdb-0.75/instcheck.c
93
+ - cdb-0.75/open.h
94
+ - cdb-0.75/open_read.c
95
+ - cdb-0.75/open_trunc.c
96
+ - cdb-0.75/readwrite.h
97
+ - cdb-0.75/scan.h
98
+ - cdb-0.75/scan_ulong.c
99
+ - cdb-0.75/seek.h
100
+ - cdb-0.75/seek_cur.c
101
+ - cdb-0.75/seek_set.c
102
+ - cdb-0.75/str.h
103
+ - cdb-0.75/str_len.c
104
+ - cdb-0.75/strerr.h
105
+ - cdb-0.75/strerr_die.c
106
+ - cdb-0.75/strerr_sys.c
107
+ - cdb-0.75/tryulong32.c
108
+ - cdb-0.75/uint32.h1
109
+ - cdb-0.75/uint32.h2
110
+ - cdb-0.75/uint32_pack.c
111
+ - cdb-0.75/README
112
+ - cdb.c
113
+ - depend
114
+ - extconf.rb
115
+ - lib/cdb.rb
116
+ - sample/sample.rb
117
+ has_rdoc: true
118
+ homepage:
119
+ licenses: []
120
+
121
+ post_install_message:
122
+ rdoc_options: []
123
+
124
+ require_paths:
125
+ - lib
126
+ required_ruby_version: !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ segments:
132
+ - 0
133
+ version: "0"
134
+ required_rubygems_version: !ruby/object:Gem::Requirement
135
+ none: false
136
+ requirements:
137
+ - - ">"
138
+ - !ruby/object:Gem::Version
139
+ segments:
140
+ - 1
141
+ - 3
142
+ - 1
143
+ version: 1.3.1
144
+ requirements: []
145
+
146
+ rubyforge_project:
147
+ rubygems_version: 1.3.7
148
+ signing_key:
149
+ specification_version: 3
150
+ summary: This package provides a Ruby interface to Dan Bernstein's cdb (constant database) library. The source of cdb-0.75 is included in the package.
151
+ test_files: []
152
+