Class: Yoda::Store::Adapters::LeveldbAdapter
- Defined in:
- lib/yoda/store/adapters/leveldb_adapter.rb
Class Method Summary collapse
Instance Method Summary collapse
- #batch_write(data, bar) ⇒ Object
- #clear ⇒ Object
- #delete(address) ⇒ void
- #exist?(address) ⇒ true, false
- #get(address) ⇒ any
-
#initialize(path) ⇒ LeveldbAdapter
constructor
A new instance of LeveldbAdapter.
- #keys ⇒ Array<String>
- #put(address, object) ⇒ void
- #stats ⇒ Object
- #sync ⇒ Object
Constructor Details
#initialize(path) ⇒ LeveldbAdapter
Returns a new instance of LeveldbAdapter.
20 21 22 23 24 25 |
# File 'lib/yoda/store/adapters/leveldb_adapter.rb', line 20 def initialize(path) @path = path @db = LevelDB::DB.new(path, compression: true) at_exit { @db.closed? || @db.close } end |
Class Method Details
.for(path) ⇒ Object
9 10 11 12 |
# File 'lib/yoda/store/adapters/leveldb_adapter.rb', line 9 def for(path) @pool ||= {} @pool[path] || (@pool[path] = new(path)) end |
.type ⇒ Object
14 15 16 |
# File 'lib/yoda/store/adapters/leveldb_adapter.rb', line 14 def type :leveldb end |
Instance Method Details
#batch_write(data, bar) ⇒ Object
42 43 44 45 46 47 |
# File 'lib/yoda/store/adapters/leveldb_adapter.rb', line 42 def batch_write(data, ) data.each do |(k, v)| @db.put(k, v) &.increment end end |
#clear ⇒ Object
70 71 72 |
# File 'lib/yoda/store/adapters/leveldb_adapter.rb', line 70 def clear @db.destroy! end |
#delete(address) ⇒ void
This method returns an undefined value.
51 52 53 |
# File 'lib/yoda/store/adapters/leveldb_adapter.rb', line 51 def delete(address) @db.delete(address.to_s) end |
#exist?(address) ⇒ true, false
57 58 59 |
# File 'lib/yoda/store/adapters/leveldb_adapter.rb', line 57 def exist?(address) @db.exists?(address.to_s) end |
#get(address) ⇒ any
29 30 31 |
# File 'lib/yoda/store/adapters/leveldb_adapter.rb', line 29 def get(address) JSON.load(@db.get(address.to_s), symbolize_names: true) end |
#keys ⇒ Array<String>
62 63 64 |
# File 'lib/yoda/store/adapters/leveldb_adapter.rb', line 62 def keys @db.keys end |
#put(address, object) ⇒ void
This method returns an undefined value.
36 37 38 |
# File 'lib/yoda/store/adapters/leveldb_adapter.rb', line 36 def put(address, object) @db.put(address.to_s, object.to_json) end |
#stats ⇒ Object
66 67 68 |
# File 'lib/yoda/store/adapters/leveldb_adapter.rb', line 66 def stats @db.stats end |
#sync ⇒ Object
74 75 76 |
# File 'lib/yoda/store/adapters/leveldb_adapter.rb', line 74 def sync # nop end |