rocksdb-ruby 0.0.6 → 0.0.7

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: 7004e4d2e482db223112f32242d96ac95903eca3
4
- data.tar.gz: 8c4c17f150b89f4ac103e0cf25efa4248b662db3
3
+ metadata.gz: 877a71b0f471b4a5c045c73357baba3aa15f60d0
4
+ data.tar.gz: 2bd8f14ce238885afa810d742fc70eb3cd8ea608
5
5
  SHA512:
6
- metadata.gz: c0fbfd343a345996ef5f399f3de46e4947a1d3d9133ad067ad54e3c77b6f599e77afd3655506ba48d0d6366066d9b2bc46e2d9a3f9f05aa11c6438cdb7b68f4c
7
- data.tar.gz: e598affdc5c818af3e9ad5644000d68da9bea2bc079d19c2353b3dad4601f6e601c435a015a7760d56d2a7d88ee96491e671cdc6cef2ea2406a297f70b219a15
6
+ metadata.gz: d2c9e587b5ffe39364ee6bd2ccf89214a5d1f1f618e9dd5e9b1a6f400ffbdec21e2b43200f042640ae75888fac551fc39cedb58484ff97bf246f1d0dd3d1859f
7
+ data.tar.gz: 97f1ad5e431da4953ba5850d425f51cccf9d817e56a787e6266f96b845e5bdfb9fa20f58f01cea7fcc48ad8d2524ffd9fa48cb55076f44f77733c3546142d603
data/README.md CHANGED
@@ -24,7 +24,7 @@ Or install it yourself as:
24
24
 
25
25
  ## Usage
26
26
 
27
- require "RocksDB"
27
+ require "rocksdb"
28
28
 
29
29
  # Reads And Writes
30
30
  key = "test"
@@ -106,7 +106,19 @@ extern "C" {
106
106
 
107
107
  return status.ok() ? Qtrue : Qfalse;
108
108
  }
109
-
109
+
110
+ VALUE rocksdb_db_exists(VALUE self, VALUE v_key){
111
+ Check_Type(v_key, T_STRING);
112
+
113
+ rocksdb_pointer* db_pointer;
114
+ Data_Get_Struct(self, rocksdb_pointer, db_pointer);
115
+
116
+ std::string key = std::string((char*)RSTRING_PTR(v_key));
117
+ std::string value = std::string();
118
+
119
+ return db_pointer->db->KeyMayExist(rocksdb::ReadOptions(), key, &value) ? Qtrue : Qfalse;
120
+ }
121
+
110
122
  VALUE rocksdb_db_close(VALUE self){
111
123
  rocksdb_pointer* db_pointer;
112
124
  Data_Get_Struct(self, rocksdb_pointer, db_pointer);
@@ -174,15 +186,5 @@ extern "C" {
174
186
  }
175
187
 
176
188
  VALUE rocksdb_db_debug(VALUE self){
177
-
178
- rocksdb_pointer* db_pointer;
179
- Data_Get_Struct(self, rocksdb_pointer, db_pointer);
180
- rocksdb::Iterator* it = db_pointer->db->NewIterator(rocksdb::ReadOptions());
181
-
182
- for (it->SeekToFirst(); it->Valid(); it->Next()) {
183
- std::cout << it->key().ToString() << ": " << it->value().ToString() << std::endl;
184
- }
185
- delete it;
186
- return Qnil;
187
189
  }
188
190
  }
@@ -10,6 +10,7 @@ extern "C" {
10
10
  VALUE rocksdb_db_get(VALUE self, VALUE v_key);
11
11
  VALUE rocksdb_db_multi_get(VALUE self, VALUE v_array);
12
12
  VALUE rocksdb_db_delete(VALUE self, VALUE v_key);
13
+ VALUE rocksdb_db_exists(VALUE self, VALUE v_key);
13
14
  VALUE rocksdb_db_close(VALUE self);
14
15
  VALUE rocksdb_db_debug(VALUE self);
15
16
  VALUE rocksdb_db_new_iterator(VALUE self);
@@ -16,7 +16,7 @@ extern "C" {
16
16
  VALUE cRocksdb_write_options;
17
17
  VALUE cRocksdb_status;
18
18
 
19
- cRocksdb = rb_define_class("RocksDB", rb_cObject);
19
+ cRocksdb = rb_define_module("RocksDB");
20
20
  cRocksdb_db = rb_define_class_under(cRocksdb, "DB", rb_cObject);
21
21
  rb_define_alloc_func(cRocksdb_db, db_alloc);
22
22
 
@@ -26,6 +26,7 @@ extern "C" {
26
26
  rb_define_method(cRocksdb_db, "get", (METHOD)rocksdb_db_get, 1);
27
27
  rb_define_method(cRocksdb_db, "multi_get", (METHOD)rocksdb_db_multi_get, 1);
28
28
  rb_define_method(cRocksdb_db, "delete", (METHOD)rocksdb_db_delete, 1);
29
+ rb_define_method(cRocksdb_db, "exists?", (METHOD)rocksdb_db_exists, 1);
29
30
  rb_define_method(cRocksdb_db, "close", (METHOD)rocksdb_db_close, 0);
30
31
  rb_define_method(cRocksdb_db, "debug", (METHOD)rocksdb_db_debug, 0);
31
32
  rb_define_method(cRocksdb_db, "new_iterator", (METHOD)rocksdb_db_new_iterator, 0);
@@ -1,5 +1,5 @@
1
1
  module Rocksdb
2
2
  module Ruby
3
- VERSION = "0.0.6"
3
+ VERSION = "0.0.7"
4
4
  end
5
5
  end
data/lib/rocksdb/ruby.rb CHANGED
@@ -1,7 +0,0 @@
1
- require "rocksdb/ruby/version"
2
-
3
- module Rocksdb
4
- module Ruby
5
- # Your code goes here...
6
- end
7
- end
data/lib/rocksdb.rb ADDED
@@ -0,0 +1,16 @@
1
+ require "RocksDB/RocksDB" # the c extension
2
+ require "rocksdb/ruby/version"
3
+
4
+ module RocksDB
5
+ class DB
6
+ class << self
7
+ end
8
+
9
+ alias :includes? :exists?
10
+ alias :contains? :exists?
11
+ alias :member? :exists?
12
+ alias :[] :get
13
+ alias :[]= :put
14
+ alias :close! :close
15
+ end
16
+ end
data/spec/db_spec.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  require 'spec_helper'
3
- require "RocksDB"
3
+ require "rocksdb"
4
4
 
5
5
  describe RocksDB do
6
6
  before do
@@ -81,6 +81,17 @@ describe RocksDB do
81
81
  expect(array).to eq rev_array.reverse
82
82
 
83
83
  end
84
+
85
+ it 'should exists?' do
86
+ @rocksdb.put("test:exists?", "a")
87
+ @rocksdb.delete("test:noexists?")
88
+ expect(@rocksdb.exists?("test:exists?")).to be_true
89
+ expect(@rocksdb.exists?("test:noexists?")).to be_false
90
+
91
+ expect(@rocksdb.includes?("test:exists?")).to be_true
92
+ expect(@rocksdb.includes?("test:noexists?")).to be_false
93
+
94
+ end
84
95
 
85
96
  after do
86
97
  @rocksdb.close
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.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Isamu Arimoto
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-30 00:00:00.000000000 Z
11
+ date: 2013-12-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -76,6 +76,7 @@ files:
76
76
  - ext/rocksdb/rocksdb_rb.h
77
77
  - ext/rocksdb/rocksdb_status_rb.cc
78
78
  - ext/rocksdb/rocksdb_status_rb.h
79
+ - lib/rocksdb.rb
79
80
  - lib/rocksdb/ruby.rb
80
81
  - lib/rocksdb/ruby/version.rb
81
82
  - rocksdb-ruby.gemspec