Class: SgtnClient::Core::Cache

Inherits:
Object
  • Object
show all
Defined in:
lib/sgtn-client/core/cache.rb

Defined Under Namespace

Classes: Entry

Class Method Summary collapse

Class Method Details

.clearObject



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

.invalidateObject



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

.keysObject



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