Class: Stacks::Backends::NamespacedBackend

Inherits:
Object
  • Object
show all
Includes:
Backend
Defined in:
lib/stacks/backends/namespaced_backend.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Backend

#fill, #get_or_set, #key, #prefix_key, #suffix_key

Instance Attribute Details

#namespaceObject

Returns the value of attribute namespace.



5
6
7
# File 'lib/stacks/backends/namespaced_backend.rb', line 5

def namespace
  @namespace
end

Instance Method Details

#backend_keyObject



7
8
9
# File 'lib/stacks/backends/namespaced_backend.rb', line 7

def backend_key
  "n"
end

#clear_cacheObject



31
32
33
# File 'lib/stacks/backends/namespaced_backend.rb', line 31

def clear_cache
  Stacks.redis.del(prefix_key)
end

#del(item) ⇒ Object



43
44
45
# File 'lib/stacks/backends/namespaced_backend.rb', line 43

def del(item)
  del_key(suffix_key(item))
end

#del_key(key) ⇒ Object



39
40
41
# File 'lib/stacks/backends/namespaced_backend.rb', line 39

def del_key(key)
  Stacks.redis.hdel(prefix_key, key)
end

#expire(item, ttl) ⇒ Object



27
28
29
# File 'lib/stacks/backends/namespaced_backend.rb', line 27

def expire(item, ttl)
  Stacks.redis.expire(prefix_key, ttl)
end

#get(item) ⇒ Object



15
16
17
18
19
# File 'lib/stacks/backends/namespaced_backend.rb', line 15

def get(item)
  potential_value = Stacks.redis.hget(prefix_key, suffix_key(item))
  raise Stacks::NoValueException unless potential_value
  return Marshal.load(potential_value) if potential_value
end

#keysObject



35
36
37
# File 'lib/stacks/backends/namespaced_backend.rb', line 35

def keys
  Stacks.redis.hkeys(prefix_key)
end

#prefix_keysObject



11
12
13
# File 'lib/stacks/backends/namespaced_backend.rb', line 11

def prefix_keys
  super << @namespace
end

#set(item) ⇒ Object



21
22
23
24
25
# File 'lib/stacks/backends/namespaced_backend.rb', line 21

def set(item)
  value = item.value
  Stacks.redis.hset(prefix_key, suffix_key(item), Marshal.dump(value))
  value
end