dustin-beanstalk-client 1.0.2 → 1.0.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,15 @@
1
+ == 1.0.2 2008-06-18
2
+
3
+ * Support reserve-with-timeout on pools. (Dustin Sallings)
4
+
5
+ == 1.0.1 (never released)
6
+
7
+ * Fix bug preventing jobs from being deleted.
8
+ * Remove an extraneous message. (Dustin Sallings)
9
+ * Fix the github gemspec so beanstalk-client builds. (Isaac Feliu)
10
+ * Support the new reserve-with-timeout command in dev beanstalkd.
11
+ (Dustin Sallings)
12
+
1
13
  == 1.0.0 2008-05-29
2
14
 
3
15
  * Preserve the watch list when a Pool instance reconnects.
@@ -50,6 +50,10 @@ module Beanstalk
50
50
  end
51
51
 
52
52
  def put(body, pri=65536, delay=0, ttr=120)
53
+ pri = pri.to_i
54
+ delay = delay.to_i
55
+ ttr = ttr.to_i
56
+ body = body.to_s # Make sure that body.size gives a useful number
53
57
  interact("put #{pri} #{delay} #{ttr} #{body.size}\r\n#{body}\r\n",
54
58
  %w(INSERTED BURIED))[0].to_i
55
59
  end
@@ -101,6 +105,9 @@ module Beanstalk
101
105
  end
102
106
 
103
107
  def release(id, pri, delay)
108
+ id = id.to_i
109
+ pri = pri.to_i
110
+ delay = delay.to_i
104
111
  interact("release #{id} #{pri} #{delay}\r\n", %w(RELEASED))
105
112
  :ok
106
113
  end
@@ -110,6 +117,15 @@ module Beanstalk
110
117
  :ok
111
118
  end
112
119
 
120
+ def touch(id)
121
+ interact("touch #{id}\r\n", %w(TOUCHED))
122
+ :ok
123
+ end
124
+
125
+ def kick(n)
126
+ interact("kick #{n}\r\n", %w(KICKED))[0].to_i
127
+ end
128
+
113
129
  def use(tube)
114
130
  return tube if tube == @last_used
115
131
  @last_used = interact("use #{tube}\r\n", %w(USING))[0]
@@ -193,7 +209,7 @@ module Beanstalk
193
209
  id, bytes = check_resp(word).map{|s| s.to_i}
194
210
  body = read_bytes(bytes)
195
211
  raise 'bad trailer' if read_bytes(2) != "\r\n"
196
- [id, body]
212
+ [id, body, word == 'RESERVED']
197
213
  end
198
214
 
199
215
  def read_yaml(word)
@@ -36,28 +36,38 @@ class Beanstalk::Job
36
36
  (@ybody ||= [begin YAML.load(body) rescue nil end])[0]
37
37
  end
38
38
 
39
- def initialize(conn, id, body)
39
+ def initialize(conn, id, body, reserved=true)
40
40
  @conn = conn
41
41
  @id = id
42
42
  @body = body
43
- @deleted = false
43
+ @reserved = reserved
44
44
  end
45
45
 
46
46
  def delete()
47
- @conn.delete(id) if !@deleted
48
- @deleted = true
47
+ return if !@reserved
48
+ @conn.delete(id)
49
+ @reserved = false
49
50
  end
50
51
 
51
52
  def put_back(pri=self.pri, delay=0, ttr=self.ttr)
52
53
  @conn.put(body, pri, delay, ttr)
53
54
  end
54
55
 
55
- def release(newpri=pri, delay=0)
56
- @conn.release(id, newpri, delay)
56
+ def release(newpri=nil, delay=0)
57
+ return if !@reserved
58
+ @conn.release(id, newpri || pri, delay)
59
+ @reserved = false
57
60
  end
58
61
 
59
- def bury(newpri=pri)
60
- @conn.bury(id, newpri)
62
+ def bury(newpri=nil)
63
+ return if !@reserved
64
+ @conn.bury(id, newpri || pri)
65
+ @reserved = false
66
+ end
67
+
68
+ def touch
69
+ return if !@reserved
70
+ @conn.touch(id)
61
71
  end
62
72
 
63
73
  def stats()
@@ -1,5 +1,5 @@
1
1
  module Beanstalk #:nodoc:
2
2
  module VERSION #:nodoc:
3
- STRING = '1.0.0'
3
+ STRING = '1.0.2'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dustin-beanstalk-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Keith Rarick
@@ -71,7 +71,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
71
71
  requirements: []
72
72
 
73
73
  rubyforge_project: beanstalk
74
- rubygems_version: 1.0.1
74
+ rubygems_version: 1.2.0
75
75
  signing_key:
76
76
  specification_version: 2
77
77
  summary: Ruby client library for the Beanstalk protocol