dustin-beanstalk-client 1.0.2 → 1.0.2.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/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