Class: Sparkey::Store
- Inherits:
-
Object
- Object
- Sparkey::Store
- Defined in:
- lib/sparkey/store.rb
Instance Attribute Summary collapse
-
#filename ⇒ Object
Returns the value of attribute filename.
-
#hash_reader ⇒ Object
Returns the value of attribute hash_reader.
-
#hash_writer ⇒ Object
Returns the value of attribute hash_writer.
-
#log_reader ⇒ Object
Returns the value of attribute log_reader.
-
#log_writer ⇒ Object
Returns the value of attribute log_writer.
Class Method Summary collapse
- .create(filename, compression_type = :compression_none, block_size = 1000) ⇒ Object
- .open(filename) ⇒ Object
Instance Method Summary collapse
- #close ⇒ Object
- #delete(key) ⇒ Object
- #each_from_hash(&block) ⇒ Object (also: #each)
- #each_from_log(&block) ⇒ Object
- #flush ⇒ Object
- #get(key) ⇒ Object
-
#initialize(filename) ⇒ Store
constructor
A new instance of Store.
- #put(key, value) ⇒ Object
- #size ⇒ Object
Constructor Details
#initialize(filename) ⇒ Store
Returns a new instance of Store.
41 42 43 |
# File 'lib/sparkey/store.rb', line 41 def initialize(filename) @filename = filename end |
Instance Attribute Details
#filename ⇒ Object
Returns the value of attribute filename.
2 3 4 |
# File 'lib/sparkey/store.rb', line 2 def filename @filename end |
#hash_reader ⇒ Object
Returns the value of attribute hash_reader.
2 3 4 |
# File 'lib/sparkey/store.rb', line 2 def hash_reader @hash_reader end |
#hash_writer ⇒ Object
Returns the value of attribute hash_writer.
2 3 4 |
# File 'lib/sparkey/store.rb', line 2 def hash_writer @hash_writer end |
#log_reader ⇒ Object
Returns the value of attribute log_reader.
2 3 4 |
# File 'lib/sparkey/store.rb', line 2 def log_reader @log_reader end |
#log_writer ⇒ Object
Returns the value of attribute log_writer.
2 3 4 |
# File 'lib/sparkey/store.rb', line 2 def log_writer @log_writer end |
Class Method Details
.create(filename, compression_type = :compression_none, block_size = 1000) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/sparkey/store.rb', line 5 def self.create(filename, compression_type = :compression_none, block_size = 1000) store = new(filename) store.log_writer = Sparkey::LogWriter.new store.log_writer.create(filename, compression_type, block_size) store.log_reader = Sparkey::LogReader.new store.log_reader.open(filename) store.hash_writer = Sparkey::HashWriter.new store.hash_writer.create(filename) store.hash_reader = Sparkey::HashReader.new store.hash_reader.open(filename) store end |
.open(filename) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/sparkey/store.rb', line 23 def self.open(filename) store = new(filename) store.log_writer = Sparkey::LogWriter.new store.log_writer.open(filename) store.log_reader = Sparkey::LogReader.new store.log_reader.open(filename) store.hash_writer = Sparkey::HashWriter.new store.hash_writer.create(filename) store.hash_reader = Sparkey::HashReader.new store.hash_reader.open(filename) store end |
Instance Method Details
#close ⇒ Object
45 46 47 48 49 |
# File 'lib/sparkey/store.rb', line 45 def close log_writer.close log_reader.close hash_reader.close end |
#delete(key) ⇒ Object
85 86 87 |
# File 'lib/sparkey/store.rb', line 85 def delete(key) log_writer.delete(key) end |
#each_from_hash(&block) ⇒ Object Also known as: each
63 64 65 66 67 68 69 70 |
# File 'lib/sparkey/store.rb', line 63 def each_from_hash(&block) iterator = Sparkey::HashIterator.new(hash_reader) typeless_block = ->(k, v, _){ block.call(k, v) } each_with_iterator(iterator, &typeless_block) iterator.close end |
#each_from_log(&block) ⇒ Object
73 74 75 76 77 78 79 |
# File 'lib/sparkey/store.rb', line 73 def each_from_log(&block) iterator = Sparkey::LogIterator.new(log_reader) each_with_iterator(iterator, &block) iterator.close end |
#flush ⇒ Object
89 90 91 92 93 94 95 96 |
# File 'lib/sparkey/store.rb', line 89 def flush log_writer.flush # Reset to flush cached headers log_reader.open(filename) hash_writer.create(filename) hash_reader.open(filename) end |
#get(key) ⇒ Object
55 56 57 58 59 60 61 |
# File 'lib/sparkey/store.rb', line 55 def get(key) iterator = hash_reader.seek(key) return unless iterator.active? iterator.get_value end |
#put(key, value) ⇒ Object
81 82 83 |
# File 'lib/sparkey/store.rb', line 81 def put(key, value) log_writer.put(key, value) end |
#size ⇒ Object
51 52 53 |
# File 'lib/sparkey/store.rb', line 51 def size hash_reader.entry_count end |