rocksdb-ruby 0.2.2 → 0.2.3

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: 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: