rocksdb-ruby 0.2.2 → 0.2.3

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: ab9bf6ef229b188fe7cf7ea87cb394febcc0450b
4
- data.tar.gz: 91d46e1f0540989f9bc6e51626d52e420a8d3ce1
3
+ metadata.gz: e63a830799d975bd61b019413c022b2dd2c2b996
4
+ data.tar.gz: 4629fb74bd9ff28fdcc4654656410b729033d3e0
5
5
  SHA512:
6
- metadata.gz: 40a526d28f4732f873ab11569fdd809bfebe381d4ab95d52db79dae7b356f30eaff00ae060a6f2dc81b4b29811beedfb237db998ed25c26f5acc2a72ce854965
7
- data.tar.gz: 9cc68467433768b8d861f39b37309112fde862b4b4bac322f2ee6daf60abec7e55af66a3d21bd0522565010202b2c05eca1daa192ed523e797b47623768cfc88
6
+ metadata.gz: 8cd31b6afd9fc8c84638b1e37325a753e1f2a4bde49e48697f993bcf65b71c6c480b89fde2ee303a3ec1ec9b52339081508809aef6be0a31ede97cf8747191da
7
+ data.tar.gz: 4dec517e5bcc0d8c6b82c1c5a02c43643a9e0bd8e4fa1174d62730ed6c91e950e395957249e6adeb0b4bdb451faffe300b997c8ffe70a6b99c6f5c2337918cbc
@@ -119,6 +119,23 @@ extern "C" {
119
119
  return status.ok() ? Qtrue : Qfalse;
120
120
  }
121
121
 
122
+ VALUE rocksdb_db_property(VALUE self, VALUE v_key){
123
+ Check_Type(v_key, T_STRING);
124
+
125
+ rocksdb_pointer* db_pointer;
126
+ Data_Get_Struct(self, rocksdb_pointer, db_pointer);
127
+
128
+ std::string key = std::string((char*)RSTRING_PTR(v_key), RSTRING_LEN(v_key));
129
+ std::string value;
130
+ if (db_pointer->db == NULL) {
131
+ rb_raise(rb_eRuntimeError, "db not open");
132
+ }
133
+
134
+ bool status = db_pointer->db->GetProperty(key, &value);
135
+ if(!status) return Qnil;
136
+ return rb_enc_str_new(value.data(), value.size(), rb_utf8_encoding());
137
+ }
138
+
122
139
  VALUE rocksdb_db_get(VALUE self, VALUE v_key){
123
140
  Check_Type(v_key, T_STRING);
124
141
 
@@ -8,6 +8,7 @@ extern "C" {
8
8
  VALUE db_alloc(VALUE klass);
9
9
  VALUE rocksdb_db_put(VALUE self, VALUE v_key, VALUE v_value);
10
10
  VALUE rocksdb_db_write(VALUE self, VALUE v_write);
11
+ VALUE rocksdb_db_property(VALUE self, VALUE v_key);
11
12
  VALUE rocksdb_db_get(VALUE self, VALUE v_key);
12
13
  VALUE rocksdb_db_multi_get(VALUE self, VALUE v_array);
13
14
  VALUE rocksdb_db_delete(VALUE self, VALUE v_key);
@@ -22,6 +22,7 @@ extern "C" {
22
22
 
23
23
  rb_define_private_method(cRocksdb_db, "__initialize", (METHOD)rocksdb_db_init, -1);
24
24
  rb_define_private_method(cRocksdb_db, "__initialize2", (METHOD)rocksdb_db_init2, -1);
25
+ rb_define_method(cRocksdb_db, "property", (METHOD)rocksdb_db_property, 1);
25
26
  rb_define_method(cRocksdb_db, "put", (METHOD)rocksdb_db_put, 2);
26
27
  rb_define_method(cRocksdb_db, "write", (METHOD)rocksdb_db_write, 1);
27
28
  rb_define_method(cRocksdb_db, "get", (METHOD)rocksdb_db_get, 1);
@@ -1,5 +1,5 @@
1
1
  module Rocksdb
2
2
  module Ruby
3
- VERSION = "0.2.2"
3
+ VERSION = "0.2.3"
4
4
  end
5
5
  end
@@ -20,6 +20,7 @@ Gem::Specification.new do |spec|
20
20
  spec.require_paths = ["ext", "lib"]
21
21
 
22
22
  spec.add_development_dependency "bundler", "~> 2.0"
23
- spec.add_development_dependency 'rake', '~> 0'
24
- spec.add_development_dependency "rspec", '~> 0'
23
+ spec.add_development_dependency "rake"
24
+ spec.add_development_dependency "rspec"
25
+ spec.add_development_dependency "rspec-core"
25
26
  end
@@ -1,12 +1,22 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  require 'spec_helper'
3
3
  require "rocksdb"
4
+ require 'fileutils'
4
5
 
5
6
  describe RocksDB do
7
+ before :all do
8
+ FileUtils.rm(Dir.glob('/tmp/file/*'))
9
+ end
10
+
6
11
  before do
7
12
  @rocksdb = RocksDB::DB.new("/tmp/file")
8
13
  end
9
14
 
15
+ it "should get property" do
16
+ @rocksdb.put("test:read", "1")
17
+ expect(@rocksdb.property("rocksdb.estimate-num-keys")).to eq("1")
18
+ end
19
+
10
20
  it 'should get data' do
11
21
  @rocksdb.put("test:read", "1")
12
22
  expect(@rocksdb.is_readonly?).to eq false
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.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Isamu Arimoto
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-20 00:00:00.000000000 Z
11
+ date: 2019-04-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -28,28 +28,42 @@ dependencies:
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec-core
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
53
67
  - !ruby/object:Gem::Version
54
68
  version: '0'
55
69
  description: