Module: Rediska::Databases::Expiring::InstanceMethods

Defined in:
lib/rediska/databases/expiring.rb

Instance Method Summary collapse

Instance Method Details

#[](key) ⇒ Object



18
19
20
21
22
23
# File 'lib/rediska/databases/expiring.rb', line 18

def [](key)
  key = normalize(key)
  delete(key) if expired?(key)

  super
end

#[]=(key, val) ⇒ Object



25
26
27
28
29
30
# File 'lib/rediska/databases/expiring.rb', line 25

def []=(key, val)
  key = normalize(key)
  expire(key)

  super
end

#delete(key) ⇒ Object



32
33
34
35
36
37
# File 'lib/rediska/databases/expiring.rb', line 32

def delete(key)
  key = normalize(key)
  expire(key)

  super
end

#expire(key) ⇒ Object



39
40
41
42
# File 'lib/rediska/databases/expiring.rb', line 39

def expire(key)
  key = normalize(key)
  expires.delete(key)
end

#expired?(key) ⇒ Boolean

Returns:

  • (Boolean)


44
45
46
47
# File 'lib/rediska/databases/expiring.rb', line 44

def expired?(key)
  key = normalize(key)
  expires.include?(key) && expires[key] < Time.now
end

#initializeObject



12
13
14
15
16
# File 'lib/rediska/databases/expiring.rb', line 12

def initialize
  super

  @expires = {}
end

#key?(key) ⇒ Boolean

Returns:

  • (Boolean)


49
50
51
52
53
54
# File 'lib/rediska/databases/expiring.rb', line 49

def key?(key)
  key = normalize(key)
  delete(key) if expired?(key)

  super
end

#keysObject



65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/rediska/databases/expiring.rb', line 65

def keys
  super.select do |key|
    key = normalize(key)

    if expired?(key)
      delete(key)
      false
    else
      true
    end
  end
end

#normalize(key) ⇒ Object



78
79
80
# File 'lib/rediska/databases/expiring.rb', line 78

def normalize(key)
  key.to_s
end

#values_at(*keys) ⇒ Object



56
57
58
59
60
61
62
63
# File 'lib/rediska/databases/expiring.rb', line 56

def values_at(*keys)
  keys.each do |key|
    key = normalize(key)
    delete(key) if expired?(key)
  end

  super
end