asir 1.2.10 → 1.2.11

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.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ZjlhNjgyMDRmYjU4ZDkwYTFmMzUzYjUzNGQwODkzMDBjYzgzOTIzOQ==
5
+ data.tar.gz: !binary |-
6
+ M2JiODU1OGU1NzUyZDY0NDE4ZDkyNTYwMTYzZjFiMTI5Zjc0Njg0Yg==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ ODZmMmIyMGNmOGY1MmU4MTVkMGY0NDYwNDE5YTYyNzE2NTQ5NDI0ZDBmYTg0
10
+ ODliMDQ0ZjEwY2ZkNGZjNzA0MGQzODljNWNkMzI3NDA3ZTZmNDEwMjBhN2Rk
11
+ NzZmM2QzZDJjMzkyOGQxZWM4NTVlOGJhM2YxMDdhZmIwYmRhM2M=
12
+ data.tar.gz: !binary |-
13
+ N2Q5MmY0ZTI4NmE3NGY3OGMxMjI1NTAzNmE3MjU2MTg4YWE5YzYzOTljYjM5
14
+ ZDZkOTEzOGM2MGY3MmI2YTRhNWYzNDQxMGViOWM2MThiNTI0MjMzODIzMWYy
15
+ ZDM3M2Q5MDA0OGVjMGE2ODI2NTMzNzRmNzgxYTAwYjIxZjkzMGE=
data/ChangeLog CHANGED
@@ -1,32 +1,38 @@
1
- 2012-06-20 Kurt A. Stephens <ks.github@kurtstephens.com>
1
+ 2013-09-26 Kurt A. Stephens <ks.github@kurtstephens.com>
2
+
3
+ * v1.2.11: New Version: Bug Fixes.
4
+ * bin/asir: Wrap Transport#run_server! with signal handlers.
5
+ * bin/asir: Fix handling of pid files.
6
+
7
+ 2013-06-20 Kurt A. Stephens <ks.github@kurtstephens.com>
2
8
 
3
9
  * v1.2.10: New Version: New Functionality.
4
10
  * Transport#around_serve_message callback.
5
11
 
6
- 2012-06-19 Kurt A. Stephens <ks.github@kurtstephens.com>
12
+ 2013-06-19 Kurt A. Stephens <ks.github@kurtstephens.com>
7
13
 
8
14
  * v1.2.9: New Version: Fixes, New Functionality.
9
15
  * ASIR::Error::Unforwardable.unforwardable is deprecated; use .modules.
10
16
  * ASIR::AdaptiveValue: refactor ASIR::RetryBehavior sleep values.
11
17
  * BUG: Transport#after_receive_message.call takes a Message::State.
12
18
 
13
- 2012-03-14 Kurt A. Stephens <ks.github@kurtstephens.com>
19
+ 2013-03-14 Kurt A. Stephens <ks.github@kurtstephens.com>
14
20
 
15
21
  * v1.2.8: New Version: Additional functionality.
16
22
  * Support #conduit_host.
17
23
 
18
- 2012-03-14 Kurt A. Stephens <ks.github@kurtstephens.com>
24
+ 2013-03-14 Kurt A. Stephens <ks.github@kurtstephens.com>
19
25
 
20
26
  * v1.2.7: New Version: Fixed for 1.9.2-p320.
21
27
  * YAML/Syck protocol changes.
22
28
  * New API: Transport#conduit_status.
23
29
 
24
- 2012-03-13 Kurt A. Stephens <ks.github@kurtstephens.com>
30
+ 2013-03-13 Kurt A. Stephens <ks.github@kurtstephens.com>
25
31
 
26
32
  * v1.2.6: New Version: additional functionality.
27
33
  * PayloadIO::UnexpectedResponse has #expected, #received attributes.
28
34
 
29
- 2012-03-12 Kurt A. Stephens <ks.github@kurtstephens.com>
35
+ 2013-03-12 Kurt A. Stephens <ks.github@kurtstephens.com>
30
36
 
31
37
  * v1.2.5: New Version: bin/asir.
32
38
  * Do not log error if pid_file does not exist.
@@ -35,7 +41,7 @@
35
41
  * export ASIR_CONDUIT=1 for asir start KIND conduit.
36
42
  * Remove pid_file if process is not running after asir stop.
37
43
 
38
- 2012-02-01 Kurt A. Stephens <ks.github@kurtstephens.com>
44
+ 2013-02-01 Kurt A. Stephens <ks.github@kurtstephens.com>
39
45
 
40
46
  * v1.2.4: New Version: Bug fixes.
41
47
  * Handle STDIO properly in potentially daemonized processes.
@@ -0,0 +1,7 @@
1
+ # -*- ruby -*-
2
+ guard 'rspec' do
3
+ watch(%r{^spec/.+_spec\.rb$})
4
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
5
+ watch('spec/spec_helper.rb') { "spec" }
6
+ end
7
+
@@ -27,8 +27,11 @@ Gem::Specification.new do |s|
27
27
  s.add_dependency "rack", "~> 1.4.1"
28
28
 
29
29
  s.add_development_dependency 'rake', '>= 0.9.0'
30
- s.add_development_dependency 'rspec', '~> 2.12.0'
30
+ s.add_development_dependency 'rspec', '~> 2.14.1'
31
+ s.add_development_dependency 'rspec-mocks', '~> 2.14.3'
31
32
  s.add_development_dependency 'simplecov', '>= 0.1'
33
+ s.add_development_dependency 'guard', '~> 1.8'
34
+ s.add_development_dependency 'guard-rspec', '~> 3.1'
32
35
  if (RUBY_ENGINE rescue 'UNKNOWN') =~ /jruby/i
33
36
  s.add_development_dependency 'spoon', '>= 0.0.1'
34
37
  end
@@ -3,7 +3,8 @@ set -x
3
3
  dir="$(cd "$(dirname $0)" && /bin/pwd)"
4
4
  PATH="$dir/../bin:$PATH"
5
5
  export RUBYLIB="$dir/../example:$dir/../lib"
6
- asir="asir verbose=9 config_rb=$dir/config/asir_config.rb"
6
+ asir="asir config_rb=$dir/config/asir_config.rb"
7
+ # asir="$asir verbose=9"
7
8
  args="$*"
8
9
  args="${args:-ALL}"
9
10
  # set -e
@@ -28,6 +29,9 @@ $asir stop webrick worker
28
29
  sleep 1
29
30
  $asir pid webrick worker
30
31
 
32
+ log_file="$($asir log webrick worker)"
33
+ echo log_file="$log_file"
34
+ cat $log_file
31
35
  ;;
32
36
  esac
33
37
 
@@ -98,7 +98,7 @@ class Main
98
98
  $stderr.puts " sel = #{sel.inspect}"
99
99
  end
100
100
  send(sel)
101
- rescue ::Exception => exc
101
+ rescue ::StandardError => exc
102
102
  $stderr.puts "#{log_str} ERROR\n#{exc.inspect}\n #{exc.backtrace * "\n "}"
103
103
  self.exit_code += 1
104
104
  raise
@@ -261,6 +261,7 @@ END
261
261
  end
262
262
 
263
263
  def write_pid_file! pid
264
+ log "pid_file #{pid_file}"
264
265
  File.open(pid_file, "w+") { | o | o.puts pid }
265
266
  File.chmod(0666, pid_file) rescue nil
266
267
  end
@@ -299,7 +300,7 @@ END
299
300
  File.unlink(pid_file) rescue nil
300
301
  end
301
302
  self
302
- rescue ::Exception => exc
303
+ rescue ::StandardError => exc
303
304
  msg = "ERROR pid #{$$}\n#{exc.inspect}\n #{exc.backtrace * "\n "}"
304
305
  log msg, :stderr
305
306
  raise
@@ -307,8 +308,9 @@ END
307
308
  end
308
309
 
309
310
  def kill_server!
310
- log "#{log_str} kill"
311
311
  pid = server_pid
312
+ log "#{log_str} pid_file #{pid_file}"
313
+ log "#{log_str} kill pid #{pid}"
312
314
  case stop_pid! pid
313
315
  when :not_running
314
316
  File.unlink(pid_file) rescue nil
@@ -328,8 +330,11 @@ END
328
330
  end
329
331
 
330
332
  def server_pid
331
- File.exist?(pid_file) &&
332
- File.read(pid_file).chomp!.to_i
333
+ File.exist?(pid_file) and
334
+ pid = File.read(pid_file).chomp! and
335
+ pid = pid.to_i and
336
+ pid > 1 and
337
+ pid
333
338
  end
334
339
 
335
340
  def _create_transport default_class
@@ -379,7 +384,9 @@ END
379
384
  $0 = "#{old_arg0} #{transport.message_count} #{message.identifier}"
380
385
  after_receive_message.call(transport, state)
381
386
  end
382
- transport.run_server!
387
+ transport.with_server_signals! do
388
+ transport.run_server!
389
+ end
383
390
  self
384
391
  end
385
392
 
@@ -421,12 +428,12 @@ END
421
428
  def process_running? pid
422
429
  case pid
423
430
  when false, nil
431
+ pid
424
432
  when Integer
425
- Process.kill(0, pid)
433
+ pid > 1 && Process.kill(0, pid) && pid
426
434
  else
427
435
  raise TypeError, "expected false, nil, Integer; given #{pid.inspect}"
428
436
  end
429
- pid
430
437
  rescue ::Errno::ESRCH
431
438
  false
432
439
  rescue ::Exception => exc
@@ -211,36 +211,51 @@ module ASIR
211
211
  def stop! force = false
212
212
  @running = false
213
213
  stop_server! if respond_to?(:stop_server!)
214
- raise Error::Terminate if force || @force_stop
214
+ if force || @force_stop
215
+ exc = @signal_exception || Error::Terminate.new("#{self} stop!")
216
+ @signal_exception = nil
217
+ raise exc
218
+ end
215
219
  self
216
220
  end
217
221
 
218
222
  def with_force_stop!
219
223
  force_stop_save = @force_stop
220
- @force_stop = true
221
- yield
222
- ensure
223
- @force_stop = force_stop_save
224
+ begin
225
+ @force_stop = true
226
+ yield
227
+ ensure
228
+ @force_stop = force_stop_save
229
+ end
224
230
  end
225
231
 
226
232
  def with_server_signals!
227
233
  old_trap = { }
228
- [ "TERM", "HUP" ].each do | sig |
229
- trap = proc do | *args |
230
- stop!
231
- @signal_exception = ::ASIR::Error::Terminate.new("#{self} by SIG#{sig} #{args.inspect} in #{__FILE__}:#{__LINE__}")
234
+ begin
235
+ in_with_server_signals = @in_with_server_signals
236
+ unless in_with_server_signals
237
+ @in_with_server_signals = true
238
+ [ "TERM", "HUP" ].each do | sig |
239
+ trap = proc do | *args |
240
+ @signal_exception = ::ASIR::Error::Terminate.
241
+ new("#{self} SIG#{sig} #{args.inspect} in #{__FILE__}:#{__LINE__}")
242
+ stop!
243
+ end
244
+ old_trap[sig] = Signal.trap(sig, trap)
245
+ end
246
+ end
247
+ yield
248
+ unless in_with_server_signals
249
+ if exc = @signal_exception
250
+ @signal_exception = nil
251
+ raise exc
252
+ end
253
+ end
254
+ ensure
255
+ # $stderr.puts "old_trap = #{old_trap.inspect}"
256
+ old_trap.each do | sig, trap |
257
+ Signal.trap(sig, trap) rescue nil
232
258
  end
233
- old_trap[sig] = Signal.trap(sig, trap)
234
- end
235
- yield
236
- if exc = @signal_exception
237
- @signal_exception = nil
238
- raise exc
239
- end
240
- ensure
241
- # $stderr.puts "old_trap = #{old_trap.inspect}"
242
- old_trap.each do | sig, trap |
243
- Signal.trap(sig, trap) rescue nil
244
259
  end
245
260
  end
246
261
 
@@ -1,3 +1,3 @@
1
1
  module ASIR
2
- VERSION = "1.2.10"
2
+ VERSION = "1.2.11"
3
3
  end
@@ -1,4 +1,4 @@
1
- require File.expand_path('../spec_helper', __FILE__)
1
+ require 'spec_helper'
2
2
 
3
3
  require 'asir'
4
4
 
@@ -1,4 +1,4 @@
1
- require File.expand_path('../spec_helper', __FILE__)
1
+ require 'spec_helper'
2
2
 
3
3
  require 'asir'
4
4
  require 'asir/transport/demux'
@@ -1,4 +1,4 @@
1
- require File.expand_path('../spec_helper', __FILE__)
1
+ require 'spec_helper'
2
2
 
3
3
  $:.unshift File.expand_path('../../example', __FILE__)
4
4
 
@@ -0,0 +1,57 @@
1
+ require 'asir/main'
2
+
3
+ describe ASIR::Main do
4
+ let(:main) { ASIR::Main.new }
5
+
6
+ context "#server_pid" do
7
+ let(:pid_file) do
8
+ pid_file = "/tmp/#{$$}.#{rand(10000)}.pid"
9
+ File.exist?(pid_file).should == false
10
+ pid_file
11
+ end
12
+ before(:each) { allow(main).to receive(:pid_file).and_return(pid_file) }
13
+ after(:each) { File.unlink(pid_file) rescue nil }
14
+
15
+ it "should return non-true if pid_file does not exist" do
16
+ main.server_pid.should == false
17
+ end
18
+
19
+ it "should return non-true if pid_file is empty" do
20
+ File.open(pid_file, "w+") { | fh | }
21
+ main.server_pid.should == nil
22
+ end
23
+
24
+ it "should return non-true if pid_file is empty" do
25
+ File.open(pid_file, "w+") { | fh | }
26
+ main.server_pid.should == nil
27
+ end
28
+
29
+ it "should return non-true if pid_file has an empty line" do
30
+ File.open(pid_file, "w+") { | fh | fh.puts "" }
31
+ main.server_pid.should == false
32
+ end
33
+
34
+ it "should return non-true if pid_file is broken" do
35
+ File.open(pid_file, "w+") { | fh | "asdfsd" }
36
+ main.server_pid.should == nil
37
+ end
38
+
39
+ it "should return pid if pid_file contains a pid" do
40
+ File.open(pid_file, "w+") { | fh | fh.puts($$.to_s) }
41
+ main.server_pid.should == $$
42
+ end
43
+ end
44
+
45
+ context "#process_running?" do
46
+ it "should return false for invalid values." do
47
+ main.process_running?(nil).should == nil
48
+ main.process_running?(false).should == false
49
+ main.process_running?(0).should == false
50
+ main.process_running?(1).should == false
51
+ end
52
+
53
+ it "should return pid for a live process." do
54
+ main.process_running?($$).should == $$
55
+ end
56
+ end
57
+ end
@@ -1,6 +1,4 @@
1
- require File.expand_path('../spec_helper', __FILE__)
2
-
3
- $:.unshift File.expand_path('../../example', __FILE__)
1
+ require 'spec_helper'
4
2
 
5
3
  require 'asir'
6
4
 
@@ -1,4 +1,4 @@
1
- require File.expand_path('../spec_helper', __FILE__)
1
+ require 'spec_helper'
2
2
 
3
3
  require 'asir'
4
4
 
@@ -14,18 +14,19 @@ describe "ASIR Performance" do
14
14
  object.class.asir.transport = transport
15
15
  end
16
16
 
17
- it 'Raw message time' do
17
+ it 'Message time using Transport::Local, Coder::Identity' do
18
+ @desc = 'Raw messaging'
18
19
  run! do
19
20
  object.return_argument :this_value
20
21
  end
21
- $raw_t = @t # FIXME!
22
- end
22
+ $raw_t = @t
23
23
 
24
- it 'Message time using Transport::Local, Coder::Identity' do
24
+ @desc = 'Message using Transport::Local, Coder::Identity'
25
25
  run! do
26
26
  object.asir.return_argument :this_value
27
27
  end
28
- that_t = $raw_t # FIXME!
28
+
29
+ that_t = $raw_t
29
30
  this_t = @t
30
31
  $stderr.puts "\nThis .vs. Raw: #{this_t[:ms_per_n] / that_t[:ms_per_n]} ms/msg / ms/msg"
31
32
  end
@@ -35,3 +35,10 @@ module ASIR
35
35
  end
36
36
  end
37
37
 
38
+ gem 'rspec-mocks'
39
+ require 'rspec/mocks'
40
+
41
+ RSpec.configure do |config|
42
+ config.mock_with :rspec
43
+ # config.order = "random" # ex04.rb before ex05.rb
44
+ end
@@ -1,4 +1,4 @@
1
- require File.expand_path('../spec_helper', __FILE__)
1
+ require 'spec_helper'
2
2
 
3
3
  require 'asir'
4
4
 
@@ -1,4 +1,4 @@
1
- require File.expand_path('../spec_helper', __FILE__)
1
+ require 'spec_helper'
2
2
  require 'asir/coder/yaml'
3
3
 
4
4
  describe "ASIR::Coder::Yaml" do
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: asir
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.10
5
- prerelease:
4
+ version: 1.2.11
6
5
  platform: ruby
7
6
  authors:
8
7
  - Kurt Stephens
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-06-20 00:00:00.000000000 Z
11
+ date: 2013-09-27 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: uuid
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: httpclient
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ~>
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ~>
44
39
  - !ruby/object:Gem::Version
@@ -46,7 +41,6 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rack
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - ~>
52
46
  - !ruby/object:Gem::Version
@@ -54,7 +48,6 @@ dependencies:
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - ~>
60
53
  - !ruby/object:Gem::Version
@@ -62,7 +55,6 @@ dependencies:
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: rake
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
59
  - - ! '>='
68
60
  - !ruby/object:Gem::Version
@@ -70,7 +62,6 @@ dependencies:
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
66
  - - ! '>='
76
67
  - !ruby/object:Gem::Version
@@ -78,23 +69,34 @@ dependencies:
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: rspec
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
73
  - - ~>
84
74
  - !ruby/object:Gem::Version
85
- version: 2.12.0
75
+ version: 2.14.1
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
80
  - - ~>
92
81
  - !ruby/object:Gem::Version
93
- version: 2.12.0
82
+ version: 2.14.1
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec-mocks
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: 2.14.3
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: 2.14.3
94
97
  - !ruby/object:Gem::Dependency
95
98
  name: simplecov
96
99
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
100
  requirements:
99
101
  - - ! '>='
100
102
  - !ruby/object:Gem::Version
@@ -102,11 +104,38 @@ dependencies:
102
104
  type: :development
103
105
  prerelease: false
104
106
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
107
  requirements:
107
108
  - - ! '>='
108
109
  - !ruby/object:Gem::Version
109
110
  version: '0.1'
111
+ - !ruby/object:Gem::Dependency
112
+ name: guard
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: '1.8'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ~>
123
+ - !ruby/object:Gem::Version
124
+ version: '1.8'
125
+ - !ruby/object:Gem::Dependency
126
+ name: guard-rspec
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ~>
130
+ - !ruby/object:Gem::Version
131
+ version: '3.1'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ~>
137
+ - !ruby/object:Gem::Version
138
+ version: '3.1'
110
139
  description: Abstracting Services in Ruby
111
140
  email: ks.ruby@kurtstephens.com
112
141
  executables:
@@ -120,6 +149,7 @@ files:
120
149
  - .travis.yml
121
150
  - ChangeLog
122
151
  - Gemfile
152
+ - Guardfile
123
153
  - README.textile
124
154
  - Rakefile
125
155
  - VERSION
@@ -248,6 +278,7 @@ files:
248
278
  - spec/debug_helper.rb
249
279
  - spec/demux_spec.rb
250
280
  - spec/example_spec.rb
281
+ - spec/lib/asir/main_spec.rb
251
282
  - spec/message_spec.rb
252
283
  - spec/performance_spec.rb
253
284
  - spec/retry_behavior_spec.rb
@@ -260,34 +291,27 @@ files:
260
291
  - stylesheets/slides.css
261
292
  homepage: http://github.com/kstephens/abstracting_services_in_ruby
262
293
  licenses: []
294
+ metadata: {}
263
295
  post_install_message:
264
296
  rdoc_options:
265
297
  - --charset=UTF-8
266
298
  require_paths:
267
299
  - lib
268
300
  required_ruby_version: !ruby/object:Gem::Requirement
269
- none: false
270
301
  requirements:
271
302
  - - ! '>='
272
303
  - !ruby/object:Gem::Version
273
304
  version: '0'
274
- segments:
275
- - 0
276
- hash: 2998837259913580415
277
305
  required_rubygems_version: !ruby/object:Gem::Requirement
278
- none: false
279
306
  requirements:
280
307
  - - ! '>='
281
308
  - !ruby/object:Gem::Version
282
309
  version: '0'
283
- segments:
284
- - 0
285
- hash: 2998837259913580415
286
310
  requirements: []
287
311
  rubyforge_project:
288
- rubygems_version: 1.8.25
312
+ rubygems_version: 2.0.5
289
313
  signing_key:
290
- specification_version: 3
314
+ specification_version: 4
291
315
  summary: Abstracting Services in Ruby
292
316
  test_files:
293
317
  - spec/adaptive_value_spec.rb
@@ -295,6 +319,7 @@ test_files:
295
319
  - spec/debug_helper.rb
296
320
  - spec/demux_spec.rb
297
321
  - spec/example_spec.rb
322
+ - spec/lib/asir/main_spec.rb
298
323
  - spec/message_spec.rb
299
324
  - spec/performance_spec.rb
300
325
  - spec/retry_behavior_spec.rb