Class: SgtnClient::Core::Cache
- Inherits:
-
Object
- Object
- SgtnClient::Core::Cache
- Defined in:
- lib/sgtn-client/core/cache.rb
Defined Under Namespace
Classes: Entry
Class Method Summary collapse
- .clear ⇒ Object
- .delete(key) ⇒ Object
- .get(key) ⇒ Object
- .has(key) ⇒ Object
- .initialize(disabled = false, opts = {}) ⇒ Object
- .invalidate ⇒ Object
- .keys ⇒ Object
- .put(key, value, ttl = nil) ⇒ Object
Class Method Details
.clear ⇒ Object
61 62 63 64 65 66 67 |
# File 'lib/sgtn-client/core/cache.rb', line 61 def self.clear if $data == nil return nil end SgtnClient.logger.debug "Clear cache!" $data = Hash.new end |
.delete(key) ⇒ Object
53 54 55 56 57 58 59 |
# File 'lib/sgtn-client/core/cache.rb', line 53 def self.delete(key) if $data == nil return nil end SgtnClient.logger.debug "Delete cache for key: " + key $data.delete key end |
.get(key) ⇒ Object
26 27 28 29 30 31 32 33 |
# File 'lib/sgtn-client/core/cache.rb', line 26 def self.get(key) if $data == nil return nil end SgtnClient.logger.debug "Get cache for key: " + key invalidate $data[key][:value] if has(key) end |
.has(key) ⇒ Object
35 36 37 38 39 40 41 |
# File 'lib/sgtn-client/core/cache.rb', line 35 def self.has(key) if $data == nil return nil end SgtnClient.logger.debug "Has cache for key: " + key $data.has_key? key end |
.initialize(disabled = false, opts = {}) ⇒ Object
7 8 9 10 11 12 13 14 15 16 |
# File 'lib/sgtn-client/core/cache.rb', line 7 def self.initialize(disabled=false, opts={}) $opts = opts SgtnClient.logger.debug "Initialize cache......" if disabled == false $data = Hash.new SgtnClient.logger.debug "Cache is enabled!" else SgtnClient.logger.debug "Cache is disabled!" end end |
.invalidate ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/sgtn-client/core/cache.rb', line 69 def self.invalidate if $data == nil return nil end SgtnClient.logger.debug "Invalidating expired cache......" now = Time.now $data.each { |k, v| SgtnClient.logger.debug "Checking cache: key=#{k}, expiredtime=#{v[:expiry]}, now=#{now}, expired=#{(v[:expiry] < now)}" } $data.delete_if {|k, v| v[:expiry] < now} end |
.keys ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/sgtn-client/core/cache.rb', line 18 def self.keys if $data == nil return nil end SgtnClient.logger.debug "Get cache keys" $data.keys end |
.put(key, value, ttl = nil) ⇒ Object
43 44 45 46 47 48 49 50 51 |
# File 'lib/sgtn-client/core/cache.rb', line 43 def self.put(key, value, ttl=nil) if $data == nil return nil end ttl ||= @opts[:ttl] # hours from new SgtnClient.logger.debug "Put cache for key '" + key + "' with expired time at'" + (Time.now + ttl*60).to_s $data[key] = Entry.new(Time.now + ttl*60, value) end |