rocksdb-ruby 0.0.9 → 0.1.0
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 +4 -4
- data/ext/rocksdb/rocksdb_db_rb.cc +26 -8
- data/lib/rocksdb/ruby/version.rb +1 -1
- data/spec/db_readonly_spec.rb +18 -0
- data/spec/db_spec.rb +1 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2e6ff2cad354cadc31a44416ef54a7d34f1d3378
|
4
|
+
data.tar.gz: 9c9ec1928f6528ee8d0d5ca65280cdaa0d577ef4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 16d1135da6af3589a3a7d99d1ab2da714a353fb3286e7ed9f70fa540a3079719396be9a5512719890d89df9bc074303be04c8b8eb105eb1f175680c33e472168
|
7
|
+
data.tar.gz: 80e078c1ac478de2e77527d532080efb127d992ab77505e8924da3c9c0ca65d18cf044c318320823c995744ecd184c2957bc91ae8774e2a5c9b579f6f763f613
|
@@ -8,17 +8,33 @@ extern "C" {
|
|
8
8
|
|
9
9
|
VALUE rocksdb_db_init(int argc, VALUE* argv, VALUE self) {
|
10
10
|
VALUE v_db_file_name;
|
11
|
+
VALUE v_options;
|
11
12
|
rocksdb_pointer* db_pointer;
|
12
13
|
rocksdb::DB* db;
|
13
|
-
|
14
|
+
rocksdb::Options options;
|
15
|
+
rocksdb::Status status;
|
16
|
+
std::string db_file_name;
|
17
|
+
bool readonly;
|
18
|
+
|
14
19
|
Data_Get_Struct(self, rocksdb_pointer, db_pointer);
|
15
|
-
rb_scan_args(argc, argv, "
|
16
|
-
Check_Type(v_db_file_name, T_STRING);
|
17
|
-
std::string db_file_name = std::string((char*)RSTRING_PTR(v_db_file_name));
|
20
|
+
rb_scan_args(argc, argv, "11", &v_db_file_name, &v_options);
|
18
21
|
|
19
|
-
|
22
|
+
Check_Type(v_db_file_name, T_STRING);
|
23
|
+
db_file_name = std::string((char*)RSTRING_PTR(v_db_file_name));
|
24
|
+
|
25
|
+
readonly = false;
|
26
|
+
if (TYPE(v_options) == T_HASH) {
|
27
|
+
VALUE v = rb_hash_aref(v_options, ID2SYM(rb_intern("readonly")));
|
28
|
+
if(v == Qtrue){
|
29
|
+
readonly = true;
|
30
|
+
}
|
31
|
+
}
|
20
32
|
options.create_if_missing = true;
|
21
|
-
|
33
|
+
if(readonly){
|
34
|
+
status = rocksdb::DB::OpenForReadOnly(options, db_file_name, &db);
|
35
|
+
}else{
|
36
|
+
status = rocksdb::DB::Open(options, db_file_name, &db);
|
37
|
+
}
|
22
38
|
|
23
39
|
db_pointer->db = db;
|
24
40
|
|
@@ -124,12 +140,14 @@ extern "C" {
|
|
124
140
|
rocksdb_pointer* db_pointer;
|
125
141
|
Data_Get_Struct(self, rocksdb_pointer, db_pointer);
|
126
142
|
|
127
|
-
|
143
|
+
if(db_pointer->db != NULL){
|
144
|
+
delete db_pointer->db;
|
145
|
+
db_pointer->db = NULL;
|
146
|
+
}
|
128
147
|
return Qnil;
|
129
148
|
}
|
130
149
|
|
131
150
|
void db_free(rocksdb_pointer* db_pointer){
|
132
|
-
std::cout << "free\n";
|
133
151
|
if(db_pointer->db != NULL){
|
134
152
|
delete db_pointer->db;
|
135
153
|
db_pointer->db = NULL;
|
data/lib/rocksdb/ruby/version.rb
CHANGED
@@ -0,0 +1,18 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'spec_helper'
|
3
|
+
require "rocksdb"
|
4
|
+
|
5
|
+
describe RocksDB do
|
6
|
+
before do
|
7
|
+
@rocksdb = RocksDB::DB.new "/tmp/file2", {:readonly => true}
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should get data' do
|
11
|
+
@rocksdb.put("test:multi_db", "10")
|
12
|
+
expect(@rocksdb.get("test:multi_db")).to eq "2"
|
13
|
+
end
|
14
|
+
|
15
|
+
after do
|
16
|
+
@rocksdb.close
|
17
|
+
end
|
18
|
+
end
|
data/spec/db_spec.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rocksdb-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Isamu Arimoto
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-01-
|
11
|
+
date: 2014-01-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -80,6 +80,7 @@ files:
|
|
80
80
|
- lib/rocksdb/ruby.rb
|
81
81
|
- lib/rocksdb/ruby/version.rb
|
82
82
|
- rocksdb-ruby.gemspec
|
83
|
+
- spec/db_readonly_spec.rb
|
83
84
|
- spec/db_spec.rb
|
84
85
|
- spec/iterator_spec.rb
|
85
86
|
- spec/spec_helper.rb
|
@@ -109,6 +110,7 @@ signing_key:
|
|
109
110
|
specification_version: 4
|
110
111
|
summary: A simple RocksDB library for Ruby
|
111
112
|
test_files:
|
113
|
+
- spec/db_readonly_spec.rb
|
112
114
|
- spec/db_spec.rb
|
113
115
|
- spec/iterator_spec.rb
|
114
116
|
- spec/spec_helper.rb
|