leveldb-ruby 0.1

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 (113) hide show
  1. data/README +17 -0
  2. data/ext/leveldb/extconf.rb +10 -0
  3. data/ext/leveldb/leveldb.cc +181 -0
  4. data/leveldb/Makefile +172 -0
  5. data/leveldb/db/builder.cc +90 -0
  6. data/leveldb/db/builder.h +36 -0
  7. data/leveldb/db/corruption_test.cc +354 -0
  8. data/leveldb/db/db_bench.cc +677 -0
  9. data/leveldb/db/db_impl.cc +1236 -0
  10. data/leveldb/db/db_impl.h +180 -0
  11. data/leveldb/db/db_iter.cc +298 -0
  12. data/leveldb/db/db_iter.h +26 -0
  13. data/leveldb/db/db_test.cc +1192 -0
  14. data/leveldb/db/dbformat.cc +87 -0
  15. data/leveldb/db/dbformat.h +165 -0
  16. data/leveldb/db/dbformat_test.cc +112 -0
  17. data/leveldb/db/filename.cc +135 -0
  18. data/leveldb/db/filename.h +80 -0
  19. data/leveldb/db/filename_test.cc +122 -0
  20. data/leveldb/db/log_format.h +35 -0
  21. data/leveldb/db/log_reader.cc +254 -0
  22. data/leveldb/db/log_reader.h +108 -0
  23. data/leveldb/db/log_test.cc +500 -0
  24. data/leveldb/db/log_writer.cc +103 -0
  25. data/leveldb/db/log_writer.h +48 -0
  26. data/leveldb/db/memtable.cc +108 -0
  27. data/leveldb/db/memtable.h +85 -0
  28. data/leveldb/db/repair.cc +384 -0
  29. data/leveldb/db/skiplist.h +378 -0
  30. data/leveldb/db/skiplist_test.cc +378 -0
  31. data/leveldb/db/snapshot.h +66 -0
  32. data/leveldb/db/table_cache.cc +95 -0
  33. data/leveldb/db/table_cache.h +50 -0
  34. data/leveldb/db/version_edit.cc +268 -0
  35. data/leveldb/db/version_edit.h +106 -0
  36. data/leveldb/db/version_edit_test.cc +46 -0
  37. data/leveldb/db/version_set.cc +1060 -0
  38. data/leveldb/db/version_set.h +306 -0
  39. data/leveldb/db/write_batch.cc +138 -0
  40. data/leveldb/db/write_batch_internal.h +45 -0
  41. data/leveldb/db/write_batch_test.cc +89 -0
  42. data/leveldb/include/leveldb/cache.h +99 -0
  43. data/leveldb/include/leveldb/comparator.h +63 -0
  44. data/leveldb/include/leveldb/db.h +148 -0
  45. data/leveldb/include/leveldb/env.h +302 -0
  46. data/leveldb/include/leveldb/iterator.h +100 -0
  47. data/leveldb/include/leveldb/options.h +198 -0
  48. data/leveldb/include/leveldb/slice.h +109 -0
  49. data/leveldb/include/leveldb/status.h +100 -0
  50. data/leveldb/include/leveldb/table.h +70 -0
  51. data/leveldb/include/leveldb/table_builder.h +91 -0
  52. data/leveldb/include/leveldb/write_batch.h +64 -0
  53. data/leveldb/port/port.h +23 -0
  54. data/leveldb/port/port_android.cc +64 -0
  55. data/leveldb/port/port_android.h +150 -0
  56. data/leveldb/port/port_chromium.cc +80 -0
  57. data/leveldb/port/port_chromium.h +97 -0
  58. data/leveldb/port/port_example.h +115 -0
  59. data/leveldb/port/port_osx.cc +50 -0
  60. data/leveldb/port/port_osx.h +125 -0
  61. data/leveldb/port/port_posix.cc +50 -0
  62. data/leveldb/port/port_posix.h +94 -0
  63. data/leveldb/port/sha1_portable.cc +298 -0
  64. data/leveldb/port/sha1_portable.h +25 -0
  65. data/leveldb/port/sha1_test.cc +39 -0
  66. data/leveldb/port/win/stdint.h +24 -0
  67. data/leveldb/table/block.cc +263 -0
  68. data/leveldb/table/block.h +43 -0
  69. data/leveldb/table/block_builder.cc +109 -0
  70. data/leveldb/table/block_builder.h +57 -0
  71. data/leveldb/table/format.cc +131 -0
  72. data/leveldb/table/format.h +103 -0
  73. data/leveldb/table/iterator.cc +67 -0
  74. data/leveldb/table/iterator_wrapper.h +63 -0
  75. data/leveldb/table/merger.cc +197 -0
  76. data/leveldb/table/merger.h +26 -0
  77. data/leveldb/table/table.cc +175 -0
  78. data/leveldb/table/table_builder.cc +227 -0
  79. data/leveldb/table/table_test.cc +845 -0
  80. data/leveldb/table/two_level_iterator.cc +182 -0
  81. data/leveldb/table/two_level_iterator.h +34 -0
  82. data/leveldb/util/arena.cc +68 -0
  83. data/leveldb/util/arena.h +68 -0
  84. data/leveldb/util/arena_test.cc +68 -0
  85. data/leveldb/util/cache.cc +255 -0
  86. data/leveldb/util/cache_test.cc +169 -0
  87. data/leveldb/util/coding.cc +194 -0
  88. data/leveldb/util/coding.h +104 -0
  89. data/leveldb/util/coding_test.cc +173 -0
  90. data/leveldb/util/comparator.cc +72 -0
  91. data/leveldb/util/crc32c.cc +332 -0
  92. data/leveldb/util/crc32c.h +45 -0
  93. data/leveldb/util/crc32c_test.cc +72 -0
  94. data/leveldb/util/env.cc +77 -0
  95. data/leveldb/util/env_chromium.cc +612 -0
  96. data/leveldb/util/env_posix.cc +606 -0
  97. data/leveldb/util/env_test.cc +102 -0
  98. data/leveldb/util/hash.cc +45 -0
  99. data/leveldb/util/hash.h +19 -0
  100. data/leveldb/util/histogram.cc +128 -0
  101. data/leveldb/util/histogram.h +41 -0
  102. data/leveldb/util/logging.cc +81 -0
  103. data/leveldb/util/logging.h +47 -0
  104. data/leveldb/util/mutexlock.h +39 -0
  105. data/leveldb/util/options.cc +28 -0
  106. data/leveldb/util/random.h +59 -0
  107. data/leveldb/util/status.cc +75 -0
  108. data/leveldb/util/testharness.cc +65 -0
  109. data/leveldb/util/testharness.h +129 -0
  110. data/leveldb/util/testutil.cc +51 -0
  111. data/leveldb/util/testutil.h +53 -0
  112. data/lib/leveldb.rb +36 -0
  113. metadata +183 -0
@@ -0,0 +1,53 @@
1
+ // Copyright (c) 2011 The LevelDB Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file. See the AUTHORS file for names of contributors.
4
+
5
+ #ifndef STORAGE_LEVELDB_UTIL_TESTUTIL_H_
6
+ #define STORAGE_LEVELDB_UTIL_TESTUTIL_H_
7
+
8
+ #include "leveldb/env.h"
9
+ #include "leveldb/slice.h"
10
+ #include "util/random.h"
11
+
12
+ namespace leveldb {
13
+ namespace test {
14
+
15
+ // Store in *dst a random string of length "len" and return a Slice that
16
+ // references the generated data.
17
+ extern Slice RandomString(Random* rnd, int len, std::string* dst);
18
+
19
+ // Return a random key with the specified length that may contain interesting
20
+ // characters (e.g. \x00, \xff, etc.).
21
+ extern std::string RandomKey(Random* rnd, int len);
22
+
23
+ // Store in *dst a string of length "len" that will compress to
24
+ // "N*compressed_fraction" bytes and return a Slice that references
25
+ // the generated data.
26
+ extern Slice CompressibleString(Random* rnd, double compressed_fraction,
27
+ int len, std::string* dst);
28
+
29
+ // A wrapper that allows injection of errors.
30
+ class ErrorEnv : public EnvWrapper {
31
+ public:
32
+ bool writable_file_error_;
33
+ int num_writable_file_errors_;
34
+
35
+ ErrorEnv() : EnvWrapper(Env::Default()),
36
+ writable_file_error_(false),
37
+ num_writable_file_errors_(0) { }
38
+
39
+ virtual Status NewWritableFile(const std::string& fname,
40
+ WritableFile** result) {
41
+ if (writable_file_error_) {
42
+ ++num_writable_file_errors_;
43
+ *result = NULL;
44
+ return Status::IOError(fname, "fake error");
45
+ }
46
+ return target()->NewWritableFile(fname, result);
47
+ }
48
+ };
49
+
50
+ }
51
+ }
52
+
53
+ #endif // STORAGE_LEVELDB_UTIL_TESTUTIL_H_
@@ -0,0 +1,36 @@
1
+ require 'leveldb/leveldb' # the c extension
2
+
3
+ module LevelDB
4
+ class DB
5
+ include Enumerable
6
+ class << self
7
+
8
+ ## Loads or creates a LevelDB database as necessary, stored on disk at
9
+ ## +pathname+.
10
+ def new pathname
11
+ make pathname, true, false
12
+ end
13
+
14
+ ## Creates a new LevelDB database stored on disk at +pathname+. Throws an
15
+ ## exception if the database already exists.
16
+ def create pathname
17
+ make pathname, true, true
18
+ end
19
+
20
+ ## Loads a LevelDB database stored on disk at +pathname+. Throws an
21
+ ## exception unless the database already exists.
22
+ def load pathname
23
+ make pathname, false, false
24
+ end
25
+ end
26
+
27
+ alias :includes? :exists?
28
+ alias :contains? :exists?
29
+ alias :member? :exists?
30
+ alias :[] :get
31
+ alias :[]= :put
32
+
33
+ def keys; map { |k, v| k } end
34
+ def values; map { |k, v| v } end
35
+ end
36
+ end
metadata ADDED
@@ -0,0 +1,183 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: leveldb-ruby
3
+ version: !ruby/object:Gem::Version
4
+ hash: 9
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 1
9
+ version: "0.1"
10
+ platform: ruby
11
+ authors:
12
+ - William Morgan
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2011-06-16 22:35:18 -07:00
18
+ default_executable:
19
+ dependencies: []
20
+
21
+ description: LevelDB-Ruby is a Ruby binding to LevelDB.
22
+ email: wmorgan-leveldb-ruby-gemspec@masanjin.net
23
+ executables: []
24
+
25
+ extensions:
26
+ - ext/leveldb/extconf.rb
27
+ extra_rdoc_files:
28
+ - README
29
+ - ext/leveldb/leveldb.cc
30
+ files:
31
+ - README
32
+ - ext/leveldb/extconf.rb
33
+ - lib/leveldb.rb
34
+ - ext/leveldb/leveldb.cc
35
+ - leveldb/Makefile
36
+ - leveldb/port/win/stdint.h
37
+ - leveldb/port/port_osx.h
38
+ - leveldb/port/port_android.h
39
+ - leveldb/port/sha1_test.cc
40
+ - leveldb/port/port_chromium.h
41
+ - leveldb/port/port_chromium.cc
42
+ - leveldb/port/port_posix.h
43
+ - leveldb/port/sha1_portable.cc
44
+ - leveldb/port/port_example.h
45
+ - leveldb/port/port_posix.cc
46
+ - leveldb/port/port.h
47
+ - leveldb/port/sha1_portable.h
48
+ - leveldb/port/port_android.cc
49
+ - leveldb/port/port_osx.cc
50
+ - leveldb/db/dbformat.cc
51
+ - leveldb/db/db_test.cc
52
+ - leveldb/db/write_batch_internal.h
53
+ - leveldb/db/db_impl.h
54
+ - leveldb/db/log_writer.cc
55
+ - leveldb/db/write_batch.cc
56
+ - leveldb/db/corruption_test.cc
57
+ - leveldb/db/db_impl.cc
58
+ - leveldb/db/filename.h
59
+ - leveldb/db/skiplist.h
60
+ - leveldb/db/table_cache.cc
61
+ - leveldb/db/log_test.cc
62
+ - leveldb/db/log_reader.h
63
+ - leveldb/db/db_bench.cc
64
+ - leveldb/db/repair.cc
65
+ - leveldb/db/db_iter.cc
66
+ - leveldb/db/write_batch_test.cc
67
+ - leveldb/db/version_set.h
68
+ - leveldb/db/memtable.cc
69
+ - leveldb/db/version_set.cc
70
+ - leveldb/db/filename_test.cc
71
+ - leveldb/db/snapshot.h
72
+ - leveldb/db/log_reader.cc
73
+ - leveldb/db/log_format.h
74
+ - leveldb/db/version_edit.cc
75
+ - leveldb/db/table_cache.h
76
+ - leveldb/db/builder.h
77
+ - leveldb/db/dbformat.h
78
+ - leveldb/db/db_iter.h
79
+ - leveldb/db/memtable.h
80
+ - leveldb/db/version_edit_test.cc
81
+ - leveldb/db/dbformat_test.cc
82
+ - leveldb/db/builder.cc
83
+ - leveldb/db/skiplist_test.cc
84
+ - leveldb/db/log_writer.h
85
+ - leveldb/db/version_edit.h
86
+ - leveldb/db/filename.cc
87
+ - leveldb/include/leveldb/comparator.h
88
+ - leveldb/include/leveldb/table.h
89
+ - leveldb/include/leveldb/slice.h
90
+ - leveldb/include/leveldb/iterator.h
91
+ - leveldb/include/leveldb/table_builder.h
92
+ - leveldb/include/leveldb/env.h
93
+ - leveldb/include/leveldb/db.h
94
+ - leveldb/include/leveldb/cache.h
95
+ - leveldb/include/leveldb/write_batch.h
96
+ - leveldb/include/leveldb/status.h
97
+ - leveldb/include/leveldb/options.h
98
+ - leveldb/table/block.h
99
+ - leveldb/table/format.cc
100
+ - leveldb/table/table_test.cc
101
+ - leveldb/table/iterator_wrapper.h
102
+ - leveldb/table/merger.h
103
+ - leveldb/table/iterator.cc
104
+ - leveldb/table/two_level_iterator.h
105
+ - leveldb/table/two_level_iterator.cc
106
+ - leveldb/table/format.h
107
+ - leveldb/table/table.cc
108
+ - leveldb/table/merger.cc
109
+ - leveldb/table/block_builder.h
110
+ - leveldb/table/block.cc
111
+ - leveldb/table/block_builder.cc
112
+ - leveldb/table/table_builder.cc
113
+ - leveldb/util/comparator.cc
114
+ - leveldb/util/histogram.cc
115
+ - leveldb/util/hash.h
116
+ - leveldb/util/crc32c.cc
117
+ - leveldb/util/histogram.h
118
+ - leveldb/util/testutil.h
119
+ - leveldb/util/arena.h
120
+ - leveldb/util/cache_test.cc
121
+ - leveldb/util/arena_test.cc
122
+ - leveldb/util/crc32c_test.cc
123
+ - leveldb/util/env.cc
124
+ - leveldb/util/coding_test.cc
125
+ - leveldb/util/testharness.cc
126
+ - leveldb/util/coding.h
127
+ - leveldb/util/mutexlock.h
128
+ - leveldb/util/logging.cc
129
+ - leveldb/util/testutil.cc
130
+ - leveldb/util/hash.cc
131
+ - leveldb/util/crc32c.h
132
+ - leveldb/util/testharness.h
133
+ - leveldb/util/env_test.cc
134
+ - leveldb/util/env_posix.cc
135
+ - leveldb/util/arena.cc
136
+ - leveldb/util/options.cc
137
+ - leveldb/util/random.h
138
+ - leveldb/util/logging.h
139
+ - leveldb/util/coding.cc
140
+ - leveldb/util/status.cc
141
+ - leveldb/util/cache.cc
142
+ - leveldb/util/env_chromium.cc
143
+ has_rdoc: true
144
+ homepage: http://github.com/wmorgan/leveldb-ruby
145
+ licenses: []
146
+
147
+ post_install_message:
148
+ rdoc_options:
149
+ - -c
150
+ - utf8
151
+ - --main
152
+ - README
153
+ - --title
154
+ - LevelDB
155
+ require_paths:
156
+ - lib
157
+ required_ruby_version: !ruby/object:Gem::Requirement
158
+ none: false
159
+ requirements:
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ hash: 3
163
+ segments:
164
+ - 0
165
+ version: "0"
166
+ required_rubygems_version: !ruby/object:Gem::Requirement
167
+ none: false
168
+ requirements:
169
+ - - ">="
170
+ - !ruby/object:Gem::Version
171
+ hash: 3
172
+ segments:
173
+ - 0
174
+ version: "0"
175
+ requirements: []
176
+
177
+ rubyforge_project:
178
+ rubygems_version: 1.6.0
179
+ signing_key:
180
+ specification_version: 3
181
+ summary: a Ruby binding to LevelDB
182
+ test_files: []
183
+