Class: Jober::SharedObject

Inherits:
Object
  • Object
show all
Defined in:
lib/jober/shared_object.rb

Class Method Summary collapse

Class Method Details

.[](name) ⇒ Object



29
30
31
# File 'lib/jober/shared_object.rb', line 29

def [](name)
  get(name)
end

.[]=(name, obj) ⇒ Object



33
34
35
# File 'lib/jober/shared_object.rb', line 33

def []=(name, obj)
  set name, obj
end

.clearObject



49
50
51
52
53
# File 'lib/jober/shared_object.rb', line 49

def clear
  Jober.catch do
    Jober.redis.keys(key('*')).each { |k| Jober.redis.del(k) }
  end
end

.del(name) ⇒ Object



43
44
45
46
47
# File 'lib/jober/shared_object.rb', line 43

def del(name)
  Jober.catch do
    Jober.redis.del key(name)
  end
end

.get(name, conn = Jober.redis) ⇒ Object



9
10
11
12
13
14
# File 'lib/jober/shared_object.rb', line 9

def get(name, conn = Jober.redis)
  Jober.catch do
    r = conn.get(key(name))
    Marshal.load(r) if r
  end
end

.get_by_pure_key(name, conn = Jober.redis) ⇒ Object



16
17
18
19
20
21
# File 'lib/jober/shared_object.rb', line 16

def get_by_pure_key(name, conn = Jober.redis)
  Jober.catch do
    r = conn.get(name)
    Marshal.load(r) if r
  end
end

.inc(name, by = 1) ⇒ Object



37
38
39
40
41
# File 'lib/jober/shared_object.rb', line 37

def inc(name, by = 1)
  Jober.catch do
    Jober.redis.incrby(key(name), by)
  end
end

.key(name) ⇒ Object



67
68
69
70
71
72
73
74
# File 'lib/jober/shared_object.rb', line 67

def key(name)
  k = if name.start_with?('shared:')
    name
  else
    "shared:#{name}"
  end
  Jober.key(k)
end

.keys(mask) ⇒ Object



55
56
57
58
59
# File 'lib/jober/shared_object.rb', line 55

def keys(mask)
  Jober.catch do
    Jober.redis.keys(key(mask))
  end
end

.raw_get(name) ⇒ Object



23
24
25
26
27
# File 'lib/jober/shared_object.rb', line 23

def raw_get(name)
  Jober.catch do
    Jober.redis.get(key(name))
  end
end

.set(name, obj, conn = Jober.redis) ⇒ Object



3
4
5
6
7
# File 'lib/jober/shared_object.rb', line 3

def set(name, obj, conn = Jober.redis)
  Jober.catch do
    conn.set(key(name), Marshal.dump(obj))
  end
end

.values(mask) ⇒ Object



61
62
63
64
65
# File 'lib/jober/shared_object.rb', line 61

def values(mask)
  Jober.catch do
    Jober.redis.keys(key(mask)).map { |key| get_by_pure_key(key) }
  end
end