asir_zmq 1.1.1 → 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-29 Kurt A. Stephens <ks.git@kurtstephens.com>
2
+
3
+ * v1.2.0: New version.
4
+ * ASIR: Support new Message::State internal API.
5
+
1
6
  2012-12-04 Kurt A. Stephens <ks.git@kurtstephens.com>
2
7
 
3
8
  * v1.1.1: 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.0"
21
+ gem.add_dependency "asir", "~> 1.2.0"
22
22
  gem.add_dependency "zmq", "~> 2.1.4"
23
23
 
24
24
  gem.add_development_dependency 'rake', '>= 0.9.0'
@@ -0,0 +1,35 @@
1
+ # !SLIDE :capture_code_output true
2
+ # One-way ZMQ service on alternate queue.
3
+
4
+ require 'example_helper'
5
+ require 'asir/transport/zmq'
6
+ begin
7
+ zmq = ASIR::Transport::Zmq.new(:port => 31923,
8
+ :encoder => ASIR::Coder::Marshal.new,
9
+ :one_way => true,
10
+ :queue => 'alternate')
11
+ server_process do
12
+ zmq.prepare_server!
13
+ zmq.run_server!
14
+ end
15
+ UnsafeService.asir.transport = t = zmq
16
+ pr(UnsafeService.asir._configure{ | message, proxy |
17
+ message[:queue] = 'alternate'
18
+ }.do_it(":ok"))
19
+ pr(UnsafeService.asir._configure{ | message, proxy |
20
+ message[:queue] = 'other'
21
+ }.do_it(":other"))
22
+ rescue ::Exception => err
23
+ $stderr.puts "### #{$$}: ERROR: #{err.inspect}\n #{err.backtrace * "\n "}"
24
+ raise
25
+ ensure
26
+ zmq.close rescue nil; sleep 1; server_kill
27
+ end
28
+
29
+ # !SLIDE END
30
+ # EXPECT: : client process
31
+ # EXPECT: : server process
32
+ # EXPECT: UnsafeService.do_it => :ok
33
+ # EXPECT: : pr: nil
34
+ # EXPECT!: UnsafeService.do_it => :other
35
+ # EXPECT!: ERROR
@@ -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/marshal'
@@ -30,27 +30,31 @@ module ASIR
30
30
  raise exc.class, "#{self.class} #{zmq_uri}: #{exc.message}", exc.backtrace
31
31
  end
32
32
 
33
- def _receive_result message, opaque_result
34
- return nil if one_way || message.one_way
33
+ def _receive_result state
34
+ return nil if one_way || state.message.one_way
35
35
  super
36
36
  end
37
37
 
38
- def _send_result message, result, result_payload, stream, message_state
39
- return nil if one_way || message.one_way
38
+ def _send_result state
39
+ return nil if one_way || state.message.one_way
40
40
  super
41
41
  end
42
42
 
43
- def _write payload, stream, context
43
+ def _write payload, stream, state
44
44
  if one_way
45
- q = context && (context[:queue] || context[:zmq_queue])
46
- payload.insert(0, q || queue_)
45
+ q = state && state.message
46
+ q &&= q[:zmq_queue] || q[:queue]
47
+ payload.insert(0, q ? "#{q} " : queue_)
47
48
  end
48
49
  stream.send payload, 0
49
50
  stream
50
51
  end
51
52
 
52
- def _read stream, context
53
- stream.recv 0
53
+ def _read stream, state
54
+ if data = stream.recv(0) and one_way
55
+ q, data = data.split(/ /, 2)
56
+ end
57
+ data
54
58
  end
55
59
 
56
60
  def queue
@@ -68,7 +72,7 @@ module ASIR
68
72
  end
69
73
  def queue_
70
74
  @queue_ ||=
71
- (queue.empty? ? queue : queue + " ").freeze
75
+ (queue.empty? ? "asir ": queue + " ").freeze
72
76
  end
73
77
 
74
78
  # server represents a receiving ZMQ endpoint.
@@ -1,3 +1,3 @@
1
1
  module AsirZmq
2
- VERSION = "1.1.1"
2
+ VERSION = "1.2.0"
3
3
  end
@@ -1,7 +1,11 @@
1
1
  require 'rubygems'
2
2
  $:.unshift File.expand_path('../../lib', __FILE__)
3
3
 
4
- gem 'asir'
4
+ if p = ENV['ASIR_LIB_PATH']
5
+ $:.unshift File.expand_path(p)
6
+ else
7
+ gem 'asir'
8
+ end
5
9
  require 'asir'
6
10
 
7
11
  module ASIR
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: asir_zmq
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
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-04 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.0
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.0
29
+ version: 1.2.0
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: zmq
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -111,6 +111,7 @@ files:
111
111
  - example/config/asir_config.rb
112
112
  - example/ex01.rb
113
113
  - example/ex02.rb
114
+ - example/ex03.rb
114
115
  - example/example_helper.rb
115
116
  - example/sample_service.rb
116
117
  - example/unsafe_service.rb
@@ -131,18 +132,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
131
132
  - - ! '>='
132
133
  - !ruby/object:Gem::Version
133
134
  version: '0'
134
- segments:
135
- - 0
136
- hash: 4489244510687288142
137
135
  required_rubygems_version: !ruby/object:Gem::Requirement
138
136
  none: false
139
137
  requirements:
140
138
  - - ! '>='
141
139
  - !ruby/object:Gem::Version
142
140
  version: '0'
143
- segments:
144
- - 0
145
- hash: 4489244510687288142
146
141
  requirements: []
147
142
  rubyforge_project:
148
143
  rubygems_version: 1.8.24