asir_beanstalk 1.1.5 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/Changelog CHANGED
@@ -1,3 +1,8 @@
1
+ 2012-12-28 Kurt A. Stephens <ks.github@kurtstephens.com>
2
+
3
+ * v1.2.0: New version.
4
+ * ASIR: Support new ASIR internal API using Message::State.
5
+
1
6
  2012-12-11 Kurt A. Stephens <ks.github@kurtstephens.com>
2
7
 
3
8
  * v1.1.5: New version.
@@ -18,7 +18,7 @@ Gem::Specification.new do |gem|
18
18
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
19
19
  gem.require_paths = ["lib"]
20
20
 
21
- gem.add_dependency "asir", "~> 1.1.7"
21
+ gem.add_dependency "asir", "~> 1.2.0"
22
22
 
23
23
  gem.add_development_dependency 'rake', '>= 0.9.0'
24
24
  gem.add_development_dependency 'rspec', '~> 2.12.0'
@@ -7,7 +7,11 @@ when /java/i
7
7
  end
8
8
 
9
9
  $: << File.expand_path("../../lib", __FILE__)
10
- gem 'asir'
10
+ if p = ENV['ASIR_LIB_PATH']
11
+ $:.unshift File.expand_path(p)
12
+ else
13
+ gem 'asir'
14
+ end
11
15
 
12
16
  require 'asir'
13
17
  require 'asir/coder/chain'
@@ -34,14 +34,15 @@ module ASIR
34
34
 
35
35
  # !SLIDE
36
36
  # Sends the encoded Message payload String.
37
- def _send_message message, message_payload
37
+ def _send_message state
38
38
  stream.with_stream! do | s |
39
+ message = state.message
39
40
  begin
40
41
  match =
41
42
  _beanstalk(s,
42
- "put #{message[:beanstalk_priority] || @priority} #{message[:beanstalk_delay] || @delay} #{message[:beanstalk_ttr] || @ttr} #{message_payload.size}\r\n",
43
+ "put #{message[:beanstalk_priority] || @priority} #{message[:beanstalk_delay] || @delay} #{message[:beanstalk_ttr] || @ttr} #{state.message_payload.size}\r\n",
43
44
  /\AINSERTED (\d+)\r\n\Z/,
44
- message_payload)
45
+ state.message_payload)
45
46
  job_id = message[:beanstalk_job_id] = match[1].to_i
46
47
  _log { "beanstalk_job_id = #{job_id.inspect}" } if @verbose >= 2
47
48
  rescue ::Exception => exc
@@ -56,8 +57,9 @@ module ASIR
56
57
 
57
58
  # !SLIDE
58
59
  # Receives the encoded Message payload String.
59
- def _receive_message channel, additional_data
60
- channel.with_stream! do | stream |
60
+ def _receive_message state
61
+ additional_data = state.additional_data ||= { }
62
+ state.in_stream.with_stream! do | stream |
61
63
  begin
62
64
  match =
63
65
  _beanstalk(stream,
@@ -66,10 +68,9 @@ module ASIR
66
68
  additional_data[:beanstalk_job_id] = match[1].to_i
67
69
  additional_data[:beanstalk_message_size] =
68
70
  size = match[2].to_i
69
- message_payload = stream.read(size)
71
+ state.message_payload = stream.read(size)
70
72
  _read_line_and_expect! stream, /\A\r\n\Z/
71
- # Pass the original stream used to #_send_result below.
72
- [ message_payload, stream ]
73
+ state.result_opaque = stream
73
74
  rescue ::Exception => exc
74
75
  _log { [ :_receive_message, :exception, exc ] }
75
76
  additional_data[:beanstalk_error] = exc
@@ -81,7 +82,7 @@ module ASIR
81
82
 
82
83
  # !SLIDE
83
84
  # Sends the encoded Result payload String.
84
- def _send_result message, result, result_payload, channel, stream
85
+ def _send_result state
85
86
  #
86
87
  # There is a possibility here the following could happen:
87
88
  #
@@ -101,19 +102,16 @@ module ASIR
101
102
  # ...
102
103
  #
103
104
  # Therefore: _receiver_message passes the original message stream to us.
104
- # We insure that the same stream is still the active one and use it.
105
- channel.with_stream! do | maybe_other_stream |
106
- _log [ :_send_result, "stream lost" ] if maybe_other_stream != stream
107
- job_id = message[:beanstalk_job_id] or raise "no beanstalk_job_id"
108
- _beanstalk(stream,
109
- "delete #{job_id}\r\n",
110
- /\ADELETED\r\n\Z/)
111
- end
105
+ stream = state.result_opaque
106
+ job_id = state.message[:beanstalk_job_id] or raise "no beanstalk_job_id"
107
+ _beanstalk(stream,
108
+ "delete #{job_id}\r\n",
109
+ /\ADELETED\r\n\Z/)
112
110
  end
113
111
 
114
112
  # !SLIDE
115
113
  # Receives the encoded Result payload String.
116
- def _receive_result message, opaque_result
114
+ def _receive_result state
117
115
  nil
118
116
  end
119
117
 
@@ -1,3 +1,3 @@
1
1
  module AsirBeanstalk
2
- VERSION = "1.1.5"
2
+ VERSION = "1.2.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: asir_beanstalk
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.5
4
+ version: 1.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-12 00:00:00.000000000 Z
12
+ date: 2012-12-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: asir
@@ -18,7 +18,7 @@ dependencies:
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: 1.1.7
21
+ version: 1.2.0
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ~>
28
28
  - !ruby/object:Gem::Version
29
- version: 1.1.7
29
+ version: 1.2.0
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: rake
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -117,18 +117,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
117
117
  - - ! '>='
118
118
  - !ruby/object:Gem::Version
119
119
  version: '0'
120
- segments:
121
- - 0
122
- hash: 1666542740013907559
123
120
  required_rubygems_version: !ruby/object:Gem::Requirement
124
121
  none: false
125
122
  requirements:
126
123
  - - ! '>='
127
124
  - !ruby/object:Gem::Version
128
125
  version: '0'
129
- segments:
130
- - 0
131
- hash: 1666542740013907559
132
126
  requirements: []
133
127
  rubyforge_project:
134
128
  rubygems_version: 1.8.24