Class: Coin::Vault
- Inherits:
-
Object
- Object
- Coin::Vault
- Extended by:
- Forwardable
- Includes:
- MonitorMixin, Singleton
- Defined in:
- lib/coin/vault.rb
Instance Method Summary collapse
- #clear ⇒ Object
- #delete(key) ⇒ Object
- #ok? ⇒ Boolean
- #read(key) ⇒ Object
- #read_and_delete(key) ⇒ Object
- #write(key, value, lifetime = 300) ⇒ Object
Instance Method Details
#clear ⇒ Object
40 41 42 |
# File 'lib/coin/vault.rb', line 40 def clear synchronize { @dict = {} } end |
#delete(key) ⇒ Object
36 37 38 |
# File 'lib/coin/vault.rb', line 36 def delete(key) synchronize { @dict.delete(key) } end |
#ok? ⇒ Boolean
44 45 46 |
# File 'lib/coin/vault.rb', line 44 def ok? true end |
#read(key) ⇒ Object
13 14 15 16 17 18 |
# File 'lib/coin/vault.rb', line 13 def read(key) value = @dict[key] value = nil if value && value_expired?(value) return value[:value] if value nil end |
#read_and_delete(key) ⇒ Object
20 21 22 23 24 25 26 27 |
# File 'lib/coin/vault.rb', line 20 def read_and_delete(key) value = nil synchronize do value = read(key) @dict.delete(key) end value end |
#write(key, value, lifetime = 300) ⇒ Object
29 30 31 32 33 34 |
# File 'lib/coin/vault.rb', line 29 def write(key, value, lifetime=300) synchronize do @dict[key] = { :value => value, :cached_at => Time.now, :lifetime => lifetime } end value end |