asir_zmq 1.1.1 → 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-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