Module: SSD::ClassMethods
- Defined in:
- lib/ssd.rb
Class Method Summary collapse
Instance Method Summary collapse
- #[](ssd) ⇒ Object
- #count(ssd) ⇒ Object
-
#delete(*ssds) ⇒ Object
(also: #remove)
alias get ssd alias find ssd.
- #key?(ssd) ⇒ Boolean (also: #exists?)
- #keys(ssd) ⇒ Object
- #last_key(ssd) ⇒ Object
- #setup(ssd) ⇒ Object
- #ssd(ssd, default = nil) ⇒ Object
Class Method Details
.extended(base) ⇒ Object
64 65 66 67 68 69 70 71 72 |
# File 'lib/ssd.rb', line 64 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 |
Instance Method Details
#[](ssd) ⇒ Object
108 109 110 111 112 113 |
# File 'lib/ssd.rb', line 108 def [] ssd setup ssd @@ssd_db.transaction true do @@ssd_db[ssd] end end |
#count(ssd) ⇒ Object
136 137 138 139 140 |
# File 'lib/ssd.rb', line 136 def count ssd setup ssd $log.info("count") return keys(ssd).count end |
#delete(*ssds) ⇒ Object Also known as: remove
alias get ssd alias find ssd
126 127 128 129 130 131 132 133 |
# File 'lib/ssd.rb', line 126 def delete *ssds @@ssd_db.transaction do ssds.each do |ssd| @@ssd_db.delete ssd.to_sym end @@ssd_db.commit end end |
#key?(ssd) ⇒ Boolean Also known as: exists?
99 100 101 102 103 104 |
# File 'lib/ssd.rb', line 99 def key? ssd setup ssd @@ssd_db.transaction true do @@ssd_db.root? ssd end end |
#keys(ssd) ⇒ Object
92 93 94 95 96 97 |
# File 'lib/ssd.rb', line 92 def keys ssd setup ssd @@ssd_db.transaction true do @@ssd_db.roots end end |
#last_key(ssd) ⇒ Object
84 85 86 87 88 89 90 |
# File 'lib/ssd.rb', line 84 def last_key ssd setup ssd last_key = @@ssd_db.transaction true do @@ssd_db.roots end last_key.last end |
#setup(ssd) ⇒ Object
74 75 76 77 78 79 80 81 82 |
# File 'lib/ssd.rb', line 74 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) ⇒ Object
115 116 117 118 119 120 121 |
# File 'lib/ssd.rb', line 115 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 |