class Sparkey::Store
Attributes
filename[RW]
hash_reader[RW]
hash_writer[RW]
log_reader[RW]
log_writer[RW]
Public Class Methods
create(filename, compression_type = :compression_none, block_size = 1000)
click to toggle source
# 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
new(filename)
click to toggle source
# File lib/sparkey/store.rb, line 41 def initialize(filename) @filename = filename end
open(filename)
click to toggle source
# 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
Public Instance Methods
close()
click to toggle source
# File lib/sparkey/store.rb, line 45 def close log_writer.close log_reader.close hash_reader.close end
delete(key)
click to toggle source
# File lib/sparkey/store.rb, line 85 def delete(key) log_writer.delete(key) end
each_from_hash(&block)
click to toggle source
# 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
Also aliased as: each
each_from_log(&block)
click to toggle source
# 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()
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# File lib/sparkey/store.rb, line 81 def put(key, value) log_writer.put(key, value) end
size()
click to toggle source
# File lib/sparkey/store.rb, line 51 def size hash_reader.entry_count end
Private Instance Methods
each_with_iterator(iterator) { |get_key, get_value, type| ... }
click to toggle source
# File lib/sparkey/store.rb, line 99 def each_with_iterator(iterator) loop do iterator.next break unless iterator.active? yield iterator.get_key, iterator.get_value, iterator.type end end