module Persist::KCAdapter
Attributes
Public Class Methods
Source
# File lib/rbbt/persist/tsv/kyotocabinet.rb, line 9 def self.open(path, write, kyotocabinet_class = "kch") real_path = path + ".#{kyotocabinet_class}" @persistence_path = real_path flags = (write ? KyotoCabinet::DB::OWRITER | KyotoCabinet::DB::OCREATE : nil) database = CONNECTIONS[path] ||= begin db = KyotoCabinet::DB.new db.open(real_path, flags) db end database.extend KCAdapter database.persistence_path ||= real_path database end
Public Instance Methods
Source
# File lib/rbbt/persist/tsv/kyotocabinet.rb, line 28 def close @closed = true super self end
Calls superclass method
Persist::TSVAdapter#close
Source
# File lib/rbbt/persist/tsv/kyotocabinet.rb, line 62 def collect res = [] each do |key, value| res << if block_given? yield key, value else [key, value] end end res end
Source
# File lib/rbbt/persist/tsv/kyotocabinet.rb, line 74 def delete(key) out(key) end
Source
# File lib/rbbt/persist/tsv/kyotocabinet.rb, line 34 def read(force = false) return if not write? and not closed and not force self.close if !self.open(@persistence_path, KyotoCabinet::DB::OREADER) raise "Open error #{ res }. Trying to open file #{@persistence_path}" end @writable = false @closed = false self end
Source
# File lib/rbbt/persist/tsv/kyotocabinet.rb, line 45 def write(force = true) return if write? and not closed and not force self.close if !self.open(@persistence_path, KyotoCabinet::DB::OWRITER) raise "Open error. Trying to open file #{@persistence_path}" end @writable = true @closed = false self end