module SSD::Internals::Entity::ClassMethods
Public Class Methods
extended(base)
click to toggle source
# File lib/ssd/class_methods.rb, line 5 def self.extended(base) @@ssd_name = base.new.class.to_s.downcase #FileUtils::mkdir_p 'DS' #@@ssd_path = "DS/#{name}.pstore" #@@ssd_db = PStore.new @@ssd_path, true #@@ssd_db.ultra_safe = true #@@ssd_db.transaction(true) {} #@@ssd_db end
Public Instance Methods
[](ssd)
click to toggle source
# File lib/ssd/class_methods.rb, line 49 def [] ssd setup ssd @@ssd_db.transaction true do @@ssd_db[ssd] end end
count(ssd)
click to toggle source
# File lib/ssd/class_methods.rb, line 77 def count ssd setup ssd $log.info("count") return keys(ssd).count end
delete(*ssds)
click to toggle source
alias get ssd alias find ssd
# File lib/ssd/class_methods.rb, line 67 def delete *ssds @@ssd_db.transaction do ssds.each do |ssd| @@ssd_db.delete ssd.to_sym end @@ssd_db.commit end end
Also aliased as: remove
key?(ssd)
click to toggle source
# File lib/ssd/class_methods.rb, line 40 def key? ssd setup ssd @@ssd_db.transaction true do @@ssd_db.root? ssd end end
Also aliased as: exists?
keys(ssd)
click to toggle source
# File lib/ssd/class_methods.rb, line 33 def keys ssd setup ssd @@ssd_db.transaction true do @@ssd_db.roots end end
last_key(ssd)
click to toggle source
# File lib/ssd/class_methods.rb, line 25 def last_key ssd setup ssd last_key = @@ssd_db.transaction true do @@ssd_db.roots end last_key.last end
setup(ssd)
click to toggle source
# File lib/ssd/class_methods.rb, line 15 def setup ssd @@ssd = ssd FileUtils::mkdir_p ".ssd/#{@@ssd_name}" @@ssd_path = ".ssd/#{@@ssd_name}/#{@@ssd}.ssd" @@ssd_db = PStore.new @@ssd_path, true @@ssd_db.ultra_safe = true @@ssd_db.transaction(true) {} return @@ssd_db end
ssd(ssd, default = nil)
click to toggle source
# File lib/ssd/class_methods.rb, line 56 def ssd ssd, default = nil #TODO add raise if ssd.nil? last_key = (last_key ssd) @@ssd_db.transaction true do @@ssd_db.fetch last_key, default end end