turnpike 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/turnpike.rb +13 -8
- data/lib/turnpike/version.rb +1 -1
- metadata +5 -5
data/lib/turnpike.rb
CHANGED
@@ -3,9 +3,19 @@ require 'redis'
|
|
3
3
|
# A Redis-backed queue.
|
4
4
|
class Turnpike
|
5
5
|
class << self
|
6
|
+
def options
|
7
|
+
@options ||= {}
|
8
|
+
end
|
9
|
+
|
6
10
|
# Timeout, in seconds, for blocking `pop` or `shift`.
|
7
11
|
attr_accessor :timeout
|
8
12
|
|
13
|
+
@timeout = 0
|
14
|
+
|
15
|
+
def connect(options)
|
16
|
+
@options = options
|
17
|
+
end
|
18
|
+
|
9
19
|
def configure(&block)
|
10
20
|
yield self
|
11
21
|
end
|
@@ -82,7 +92,7 @@ class Turnpike
|
|
82
92
|
# the connection when the queue is empty. This argument defaults to false.
|
83
93
|
def pop(blocking = false)
|
84
94
|
if blocking
|
85
|
-
redis.brpop(name, timeout)[1] rescue nil
|
95
|
+
redis.brpop(name, Turnpike.timeout)[1] rescue nil
|
86
96
|
else
|
87
97
|
redis.rpop(name)
|
88
98
|
end
|
@@ -100,7 +110,7 @@ class Turnpike
|
|
100
110
|
# the connection when the queue is empty. This argument defaults to false.
|
101
111
|
def shift(blocking = false)
|
102
112
|
if blocking
|
103
|
-
redis.blpop(name, timeout)[1] rescue nil
|
113
|
+
redis.blpop(name, Turnpike.timeout)[1] rescue nil
|
104
114
|
else
|
105
115
|
redis.lpop(name)
|
106
116
|
end
|
@@ -114,11 +124,6 @@ class Turnpike
|
|
114
124
|
private
|
115
125
|
|
116
126
|
def redis
|
117
|
-
Redis.current
|
118
|
-
end
|
119
|
-
|
120
|
-
def timeout
|
121
|
-
# Timeout will default to 0, which blocks indefinitely.
|
122
|
-
self.class.timeout.to_i
|
127
|
+
Redis.current ||= Redis.connect(Turnpike.options)
|
123
128
|
end
|
124
129
|
end
|
data/lib/turnpike/version.rb
CHANGED
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
8
|
+
- 1
|
9
|
+
version: 0.1.1
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Paper Cavalier
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2011-07-
|
17
|
+
date: 2011-07-19 00:00:00 +01:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -80,7 +80,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
80
80
|
requirements:
|
81
81
|
- - ">="
|
82
82
|
- !ruby/object:Gem::Version
|
83
|
-
hash:
|
83
|
+
hash: 233113184440690465
|
84
84
|
segments:
|
85
85
|
- 0
|
86
86
|
version: "0"
|
@@ -89,7 +89,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
89
89
|
requirements:
|
90
90
|
- - ">="
|
91
91
|
- !ruby/object:Gem::Version
|
92
|
-
hash:
|
92
|
+
hash: 233113184440690465
|
93
93
|
segments:
|
94
94
|
- 0
|
95
95
|
version: "0"
|