rocksdb-ruby 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 02a4d4a14d208c82b4350ad74137d5dc61787981
4
- data.tar.gz: 11cb366cd0278dc76275ff163f450e8e18564a6d
3
+ metadata.gz: 8aa1f09a9b495d585a390e2d9f9b507c7625fcd6
4
+ data.tar.gz: de210851e6bbe523cdf9b6e4daff413ea001a3b7
5
5
  SHA512:
6
- metadata.gz: 67921bce1b5f49bee1861089067ee59a9380913356e20455b8135dfe498c2799c5c9b88802221709aa09522442504c1a4e2c2a13d25e806af18c98184f552a0c
7
- data.tar.gz: 0cdcbd2d5aa177d1c85db02ac03fe2f83562a9510357228ee36ce699fe527d1e6e4243aaa5d311a09b63c3775bcab19e6c71094c4cd1aacbfe5a36fca70c0ffc
6
+ metadata.gz: 422b1d95ea2f7e5b30eacf6f6a062732b42056dd7fe2c02772cdb26f5c431f841c0f4dd6900e3c129ad03561570f3e8ccd0501cccd791e216e2a65b98a08d961
7
+ data.tar.gz: 48e951f925ec08807209c40465fac01916eb80faa47a1707f81e4614f6880de0088ba192cc7cb679362de72e6bba5f5c6c39aa5b33c0a0e52617010eae10c0fa
@@ -50,7 +50,7 @@ extern "C" {
50
50
  rocksdb_pointer* db_pointer;
51
51
  Data_Get_Struct(self, rocksdb_pointer, db_pointer);
52
52
  db_pointer->db = NULL;
53
-
53
+ db_pointer->readonly = true;
54
54
  Data_Get_Struct(self, rocksdb_pointer, db_pointer);
55
55
 
56
56
  return Qtrue;
@@ -317,7 +317,23 @@ extern "C" {
317
317
  VALUE rocksdb_db_debug(VALUE self){
318
318
  return Qnil;
319
319
  }
320
-
320
+ VALUE rocksdb_db_is_readonly(VALUE self){
321
+ rocksdb_pointer* db_pointer;
322
+ Data_Get_Struct(self, rocksdb_pointer, db_pointer);
323
+ if (db_pointer->readonly) {
324
+ return Qtrue;
325
+ }
326
+ if (!db_pointer->readonly) {
327
+ return Qfalse;
328
+ }
329
+ return Qnil;
330
+ }
331
+ VALUE rocksdb_db_is_open(VALUE self){
332
+ rocksdb_pointer* db_pointer;
333
+ Data_Get_Struct(self, rocksdb_pointer, db_pointer);
334
+ return (db_pointer->db == NULL) ? Qfalse : Qtrue;
335
+ }
336
+
321
337
  VALUE rocksdb_db_compact(int argc, VALUE* argv, VALUE self) {
322
338
  VALUE v_from, v_to;
323
339
  rocksdb::Slice from, to;
@@ -14,6 +14,8 @@ extern "C" {
14
14
  VALUE rocksdb_db_exists(VALUE self, VALUE v_key);
15
15
  VALUE rocksdb_db_close(VALUE self);
16
16
  VALUE rocksdb_db_debug(VALUE self);
17
+ VALUE rocksdb_db_is_readonly(VALUE self);
18
+ VALUE rocksdb_db_is_open(VALUE self);
17
19
  VALUE rocksdb_db_new_iterator(VALUE self);
18
20
  VALUE rocksdb_db_each(VALUE self);
19
21
  VALUE rocksdb_db_each_index(VALUE self);
@@ -32,6 +32,8 @@ extern "C" {
32
32
  rb_define_method(cRocksdb_db, "debug", (METHOD)rocksdb_db_debug, 0);
33
33
  rb_define_method(cRocksdb_db, "new_iterator", (METHOD)rocksdb_db_new_iterator, 0);
34
34
  rb_define_method(cRocksdb_db, "compact", (METHOD)rocksdb_db_compact, -1);
35
+ rb_define_method(cRocksdb_db, "is_readonly?", (METHOD)rocksdb_db_is_readonly, 0);
36
+ rb_define_method(cRocksdb_db, "is_open?", (METHOD)rocksdb_db_is_open, 0);
35
37
 
36
38
  rb_define_method(cRocksdb_db, "iterator", (METHOD)rocksdb_db_each, 0);
37
39
  rb_define_method(cRocksdb_db, "each_index", (METHOD)rocksdb_db_each_index, 0);
@@ -26,12 +26,10 @@ module RocksDB
26
26
  def initialize *args
27
27
  readonly = !!(args[1] && args[1][:readonly])
28
28
  @key = args[0]
29
-
30
29
  if !readonly and @@cache[@key]
31
30
  __initialize2(*args)
32
31
  raise DBError.new("error #{@key.to_s} alread open")
33
32
  end
34
-
35
33
  __initialize(*args)
36
34
  unless readonly
37
35
  @@cache[@key] = self
@@ -1,5 +1,5 @@
1
1
  module Rocksdb
2
2
  module Ruby
3
- VERSION = "0.2.0"
3
+ VERSION = "0.2.1"
4
4
  end
5
5
  end
@@ -7,15 +7,16 @@ describe RocksDB do
7
7
  @rocksdb = RocksDB::DB.new "/tmp/file2"
8
8
  @rocksdb.put("test:multi_db", "1")
9
9
  @rocksdb.close
10
-
11
- @rocksdb2 = RocksDB::DB.new "/tmp/file2", {:readonly => true}
10
+
11
+ @rocksdb2 = RocksDB::DB.new("/tmp/file2", {:readonly => true})
12
12
  end
13
13
 
14
14
  it 'should get data' do
15
15
  expect{@rocksdb2.put("test:multi_db", "10")}.to raise_error(RuntimeError)
16
16
  expect{@rocksdb2.delete("test:multi_db")}.to raise_error(RuntimeError)
17
17
  expect(@rocksdb2.get("test:multi_db")).to eq "1"
18
-
18
+ expect(@rocksdb2.is_readonly?).to eq true
19
+
19
20
  batch = RocksDB::Batch.new
20
21
  batch.delete("test:batch1")
21
22
  batch.put("test:batch2", "b")
@@ -4,11 +4,12 @@ require "rocksdb"
4
4
 
5
5
  describe RocksDB do
6
6
  before do
7
- @rocksdb = RocksDB::DB.new "/tmp/file"
7
+ @rocksdb = RocksDB::DB.new("/tmp/file")
8
8
  end
9
9
 
10
10
  it 'should get data' do
11
11
  @rocksdb.put("test:read", "1")
12
+ expect(@rocksdb.is_readonly?).to eq false
12
13
  expect(@rocksdb.get("test:read")).to eq "1"
13
14
  end
14
15
 
@@ -50,8 +51,7 @@ describe RocksDB do
50
51
  end
51
52
 
52
53
  it 'should use multiple db' do
53
- @rocksdb2 = RocksDB::DB.new "/tmp/file2"
54
-
54
+ @rocksdb2 = RocksDB::DB.new("/tmp/file2")
55
55
  @rocksdb.put("test:multi_db", "1")
56
56
  @rocksdb2.put("test:multi_db", "2")
57
57
 
@@ -120,34 +120,55 @@ describe RocksDB do
120
120
  key = "test"
121
121
  value = "1"
122
122
 
123
- expect{RocksDB::DB.new "/tmp/file"}.to raise_error(RocksDB::DBError)
123
+ expect{RocksDB::DB.new("/tmp/file")}.to raise_error(RocksDB::DBError)
124
124
 
125
125
  expect(@rocksdb.put("test:put", "1")).to be true
126
126
 
127
- @rocksdb2 = RocksDB::DB.new "/tmp/file", {:readonly => true}
127
+ @rocksdb2 = RocksDB::DB.new("/tmp/file", {:readonly => true})
128
+ expect(@rocksdb2.is_readonly?).to eq true
128
129
  expect(@rocksdb2.get("test:put")).to eq "1"
129
130
 
130
131
  @rocksdb.close
131
- @rocksdb = RocksDB::DB.new "/tmp/file"
132
+
133
+ expect(@rocksdb.is_open?).to eq false
134
+
135
+ @rocksdb = RocksDB::DB.new("/tmp/file")
136
+ expect(@rocksdb.is_readonly?).to eq false
137
+ expect(@rocksdb.is_open?).to eq true
132
138
  expect(@rocksdb.put("test:put", "2")).to be true
133
139
 
134
- @rocksdb3 = RocksDB::DB.new "/tmp/file", {:readonly => true}
140
+ @rocksdb3 = RocksDB::DB.new("/tmp/file", {:readonly => true})
141
+ expect(@rocksdb3.is_readonly?).to eq true
142
+ expect(@rocksdb3.is_open?).to eq true
135
143
  expect(@rocksdb3.get("test:put")).to eq "2"
144
+
145
+ @rocksdb2.close
146
+ @rocksdb3.close
136
147
 
137
148
  end
138
149
 
139
150
  it 'singleton' do
140
151
  @rocksdb2 = RocksDB::DB.get_instance("/tmp/file")
152
+ expect(@rocksdb2.is_readonly?).to eq false
153
+ expect(@rocksdb2.is_open?).to eq true
154
+
141
155
  @rocksdb3 = RocksDB::DB.get_instance("/tmp/file")
156
+ expect(@rocksdb3.is_readonly?).to eq false
142
157
  expect(@rocksdb).to eq (@rocksdb3)
143
158
  expect(@rocksdb2).to eq (@rocksdb3)
144
159
 
145
160
  @rocksdb4 = RocksDB::DB.get_instance("/tmp/file", {:readonly => true})
146
161
  expect(@rocksdb2).not_to eq (@rocksdb4)
147
-
162
+ expect(@rocksdb4.is_readonly?).to eq true
163
+ expect(@rocksdb4.is_open?).to eq true
164
+
148
165
  @rocksdb2.close
149
166
  expect{@rocksdb2.get("test:put")}.to raise_error(RuntimeError)
167
+ expect(@rocksdb2.is_open?).to eq false
150
168
  expect{@rocksdb3.get("test:put")}.to raise_error(RuntimeError)
169
+ expect(@rocksdb3.is_open?).to eq false
170
+
171
+ @rocksdb4.close
151
172
  end
152
173
 
153
174
  context 'compact' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rocksdb-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Isamu Arimoto