Class: Cache

Inherits:
Object
  • Object
show all
Defined in:
lib/polygon/cache.rb

Constant Summary collapse

TTL =

seconds

60
@@redis =
Redis.new

Instance Method Summary collapse

Constructor Details

#initialize(name_map) ⇒ Cache

Returns a new instance of Cache.



10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/polygon/cache.rb', line 10

def initialize name_map

  $ps.sub 'on_trade', ->(data) {
    key = "T_#{data['sym']}"
    t = data['t']

    if expired? t

    else
      hmset key, data.to_a
    end
  }
end

Instance Method Details

#delete(names) ⇒ Object



42
43
44
# File 'lib/polygon/cache.rb', line 42

def delete names
  @@redis.del *names
end

#expired?(timestamp) ⇒ Boolean

ms

Returns:

  • (Boolean)


28
29
30
31
32
# File 'lib/polygon/cache.rb', line 28

def expired? timestamp # ms
  ts = Time.strptime(timestamp, '%Q')

  Time.now.to_i - ts.to_i >= TTL
end

#hmget(name, keys) ⇒ Object



38
39
40
# File 'lib/polygon/cache.rb', line 38

def hmget name, keys
  @@redis.hmget name, *keys
end

#hmset(name, key_vals) ⇒ Object



34
35
36
# File 'lib/polygon/cache.rb', line 34

def hmset name, key_vals 
  @@redis.hmset name, *key_vals 
end

#refreshObject



24
25
26
# File 'lib/polygon/cache.rb', line 24

def refresh
  # grab and set
end