asir_beanstalk 1.1.5 → 1.2.0

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/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