rocksdb-ruby 0.2.0 → 0.2.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.
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