rapns 3.3.2-java → 3.4.0-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. data/CHANGELOG.md +7 -0
  2. data/README.md +19 -21
  3. data/bin/rapns +14 -13
  4. data/lib/generators/templates/rapns.rb +8 -4
  5. data/lib/rapns.rb +7 -0
  6. data/lib/rapns/TODO +3 -0
  7. data/lib/rapns/apns/feedback.rb +4 -2
  8. data/lib/rapns/app.rb +3 -1
  9. data/lib/rapns/configuration.rb +8 -1
  10. data/lib/rapns/daemon.rb +3 -1
  11. data/lib/rapns/daemon/apns/app_runner.rb +3 -2
  12. data/lib/rapns/daemon/apns/certificate_expired_error.rb +20 -0
  13. data/lib/rapns/daemon/apns/connection.rb +26 -0
  14. data/lib/rapns/daemon/apns/delivery.rb +2 -1
  15. data/lib/rapns/daemon/apns/delivery_handler.rb +2 -2
  16. data/lib/rapns/daemon/app_runner.rb +50 -28
  17. data/lib/rapns/daemon/batch.rb +100 -0
  18. data/lib/rapns/daemon/delivery.rb +6 -10
  19. data/lib/rapns/daemon/delivery_handler.rb +14 -12
  20. data/lib/rapns/daemon/delivery_handler_collection.rb +33 -0
  21. data/lib/rapns/daemon/feeder.rb +3 -5
  22. data/lib/rapns/daemon/gcm/delivery.rb +5 -4
  23. data/lib/rapns/daemon/gcm/delivery_handler.rb +2 -2
  24. data/lib/rapns/daemon/store/active_record.rb +23 -2
  25. data/lib/rapns/deprecation.rb +7 -6
  26. data/lib/rapns/logger.rb +1 -1
  27. data/lib/rapns/notification.rb +5 -3
  28. data/lib/rapns/reflection.rb +1 -1
  29. data/lib/rapns/version.rb +1 -1
  30. data/lib/tasks/cane.rake +1 -1
  31. data/lib/tasks/test.rake +8 -3
  32. data/spec/unit/apns/app_spec.rb +4 -4
  33. data/spec/unit/apns_feedback_spec.rb +1 -1
  34. data/spec/unit/configuration_spec.rb +12 -6
  35. data/spec/unit/daemon/apns/app_runner_spec.rb +6 -4
  36. data/spec/unit/daemon/apns/certificate_expired_error_spec.rb +11 -0
  37. data/spec/unit/daemon/apns/connection_spec.rb +46 -10
  38. data/spec/unit/daemon/apns/delivery_handler_spec.rb +24 -18
  39. data/spec/unit/daemon/apns/delivery_spec.rb +11 -12
  40. data/spec/unit/daemon/apns/feedback_receiver_spec.rb +16 -16
  41. data/spec/unit/daemon/app_runner_shared.rb +27 -10
  42. data/spec/unit/daemon/app_runner_spec.rb +48 -28
  43. data/spec/unit/daemon/batch_spec.rb +160 -0
  44. data/spec/unit/daemon/delivery_handler_collection_spec.rb +37 -0
  45. data/spec/unit/daemon/delivery_handler_shared.rb +20 -11
  46. data/spec/unit/daemon/feeder_spec.rb +12 -12
  47. data/spec/unit/daemon/gcm/app_runner_spec.rb +4 -2
  48. data/spec/unit/daemon/gcm/delivery_handler_spec.rb +18 -10
  49. data/spec/unit/daemon/gcm/delivery_spec.rb +47 -17
  50. data/spec/unit/daemon/interruptible_sleep_spec.rb +3 -3
  51. data/spec/unit/daemon/reflectable_spec.rb +1 -1
  52. data/spec/unit/daemon/store/active_record/reconnectable_spec.rb +1 -1
  53. data/spec/unit/daemon/store/active_record_spec.rb +87 -10
  54. data/spec/unit/daemon_spec.rb +6 -6
  55. data/spec/unit/deprecation_spec.rb +2 -2
  56. data/spec/unit/logger_spec.rb +33 -17
  57. data/spec/unit/notification_shared.rb +7 -3
  58. data/spec/unit/upgraded_spec.rb +8 -14
  59. data/spec/unit_spec_helper.rb +9 -1
  60. metadata +53 -44
  61. data/lib/rapns/daemon/delivery_queue.rb +0 -42
  62. data/lib/rapns/daemon/delivery_queue_18.rb +0 -44
  63. data/lib/rapns/daemon/delivery_queue_19.rb +0 -42
  64. data/spec/acceptance/gcm_upgrade_spec.rb +0 -34
  65. data/spec/acceptance_spec_helper.rb +0 -85
  66. data/spec/unit/daemon/delivery_queue_spec.rb +0 -29
@@ -6,9 +6,9 @@ describe Rapns::Deprecation do
6
6
  Rapns::Deprecation.warn("msg")
7
7
  end
8
8
 
9
- it 'does not print a warning when silenced' do
9
+ it 'does not print a warning when muted' do
10
10
  STDERR.should_not_receive(:puts)
11
- Rapns::Deprecation.silenced do
11
+ Rapns::Deprecation.muted do
12
12
  Rapns::Deprecation.warn("msg")
13
13
  end
14
14
  end
@@ -21,14 +21,21 @@ module Airbrake
21
21
  end
22
22
 
23
23
  describe Rapns::Logger do
24
- let(:log) { stub(:sync= => true) }
25
- let(:config) { stub(:airbrake_notify => true) }
24
+ let(:log) { double(:sync= => true) }
25
+ let(:config) { double(:airbrake_notify => true) }
26
26
 
27
27
  before do
28
28
  Rails.stub(:root).and_return("/rails_root")
29
- @buffered_logger = mock("BufferedLogger", :info => nil, :error => nil, :level => 0, :auto_flushing => 1, :auto_flushing= => nil)
30
- Rails.logger = @buffered_logger
31
- ActiveSupport::BufferedLogger.stub(:new).and_return(@buffered_logger)
29
+
30
+ @logger_class = if defined?(ActiveSupport::BufferedLogger)
31
+ ActiveSupport::BufferedLogger
32
+ else
33
+ ActiveSupport::Logger
34
+ end
35
+
36
+ @logger = double(@logger_class.name, :info => nil, :error => nil, :level => 0, :auto_flushing => 1, :auto_flushing= => nil)
37
+ @logger_class.stub(:new).and_return(@logger)
38
+ Rails.logger = @logger
32
39
  File.stub(:open => log)
33
40
  STDERR.stub(:puts)
34
41
  end
@@ -50,19 +57,28 @@ describe Rapns::Logger do
50
57
  Rapns::Logger.new(:foreground => true)
51
58
  end
52
59
 
53
- it 'instantiates the BufferedLogger' do
54
- ActiveSupport::BufferedLogger.should_receive(:new).with(log, Rails.logger.level)
55
- Rapns::Logger.new(:foreground => true)
56
- end
57
-
58
60
  it 'uses the user-defined logger' do
59
- my_logger = stub
61
+ my_logger = double
60
62
  Rapns.config.logger = my_logger
61
63
  logger = Rapns::Logger.new({})
62
64
  my_logger.should_receive(:info)
63
65
  logger.info('test')
64
66
  end
65
67
 
68
+ it 'uses ActiveSupport::BufferedLogger if a user-defined logger is not set' do
69
+ if ActiveSupport.const_defined?('BufferedLogger')
70
+ ActiveSupport::BufferedLogger.should_receive(:new).with(log, Rails.logger.level)
71
+ Rapns::Logger.new(:foreground => true)
72
+ end
73
+ end
74
+
75
+ it 'uses ActiveSupport::Logger if BufferedLogger does not exist' do
76
+ stub_const('ActiveSupport::Logger', double)
77
+ ActiveSupport.stub(:const_defined? => false)
78
+ ActiveSupport::Logger.should_receive(:new).with(log, Rails.logger.level)
79
+ Rapns::Logger.new(:foreground => true)
80
+ end
81
+
66
82
  it "should print out the msg if running in the foreground" do
67
83
  logger = Rapns::Logger.new(:foreground => true)
68
84
  STDOUT.should_receive(:puts).with(/hi mom/)
@@ -79,19 +95,19 @@ describe Rapns::Logger do
79
95
  now = Time.now
80
96
  Time.stub(:now).and_return(now)
81
97
  logger = Rapns::Logger.new(:foreground => false)
82
- @buffered_logger.should_receive(:info).with(/#{Regexp.escape("[#{now.to_s(:db)}]")}/)
98
+ @logger.should_receive(:info).with(/#{Regexp.escape("[#{now.to_s(:db)}]")}/)
83
99
  logger.info("blah")
84
100
  end
85
101
 
86
102
  it "should prefix error logs with the ERROR label" do
87
103
  logger = Rapns::Logger.new(:foreground => false)
88
- @buffered_logger.should_receive(:error).with(/#{Regexp.escape("[ERROR]")}/)
104
+ @logger.should_receive(:error).with(/#{Regexp.escape("[ERROR]")}/)
89
105
  logger.error("eeek")
90
106
  end
91
107
 
92
108
  it "should prefix warn logs with the WARNING label" do
93
109
  logger = Rapns::Logger.new(:foreground => false)
94
- @buffered_logger.should_receive(:warn).with(/#{Regexp.escape("[WARNING]")}/)
110
+ @logger.should_receive(:warn).with(/#{Regexp.escape("[WARNING]")}/)
95
111
  logger.warn("eeek")
96
112
  end
97
113
 
@@ -99,7 +115,7 @@ describe Rapns::Logger do
99
115
  e = RuntimeError.new("hi mom")
100
116
  e.stub(:backtrace => [])
101
117
  logger = Rapns::Logger.new(:foreground => false)
102
- @buffered_logger.should_receive(:error).with(/RuntimeError, hi mom/)
118
+ @logger.should_receive(:error).with(/RuntimeError, hi mom/)
103
119
  logger.error(e)
104
120
  end
105
121
 
@@ -155,9 +171,9 @@ describe Rapns::Logger do
155
171
  end
156
172
 
157
173
  it 'defaults auto_flushing to true if the Rails logger does not respond to auto_flushing' do
158
- rails_logger = mock(:info => nil, :error => nil, :level => 0)
174
+ rails_logger = double(:info => nil, :error => nil, :level => 0)
159
175
  Rails.logger = rails_logger
160
176
  logger = Rapns::Logger.new({})
161
- @buffered_logger.auto_flushing.should be_true
177
+ @logger.auto_flushing.should be_true
162
178
  end
163
179
  end
@@ -1,5 +1,7 @@
1
1
  shared_examples_for "an Notification subclass" do
2
2
  describe "when assigning data for the device" do
3
+ before { Rapns::Deprecation.stub(:warn) }
4
+
3
5
  it "calls MultiJson.dump when multi_json responds to :dump" do
4
6
  notification = notification_class.new
5
7
  MultiJson.stub(:respond_to?).with(:dump).and_return(true)
@@ -30,9 +32,11 @@ shared_examples_for "an Notification subclass" do
30
32
  notification.send(data_getter).should == {"hi" => "mom"}
31
33
  end
32
34
 
33
- it 'warns if attributes_for_device is assigned via mass-assignment' do
34
- Rapns::Deprecation.should_receive(:warn)
35
- notification_class.new(:attributes_for_device => {:hi => 'mom'})
35
+ if Rails::VERSION::STRING < '4'
36
+ it 'warns if attributes_for_device is assigned via mass-assignment' do
37
+ Rapns::Deprecation.should_receive(:warn).with(':attributes_for_device via mass-assignment is deprecated. Use :data or the attributes_for_device= instance method.')
38
+ notification_class.new(:attributes_for_device => {:hi => 'mom'})
39
+ end
36
40
  end
37
41
  end
38
42
  end
@@ -1,39 +1,33 @@
1
1
  require 'unit_spec_helper'
2
2
 
3
3
  describe Rapns::Upgraded do
4
- let(:logger) { stub(:logger, :warn => nil) }
5
- let(:config) { stub(:config) }
4
+ let(:logger) { double(:logger, :warn => nil) }
5
+ let(:config) { double(:config) }
6
6
 
7
7
  before do
8
8
  Rails.stub(:root).and_return('/rails_root')
9
9
  Rapns.stub(:logger => logger, :config => config)
10
10
  end
11
11
 
12
- it 'prints a warning if there are no apps' do
13
- Rapns::App.stub(:count => 0)
14
- Rapns.logger.should_receive(:warn).any_number_of_times
15
- Rapns::Upgraded.check(:exit => false)
16
- end
17
-
18
12
  it 'prints a warning and exists if rapns has not been upgraded' do
19
- Rapns::App.stub(:count).and_raise(ActiveRecord::StatementInvalid)
20
- Rapns::Upgraded.should_receive(:puts).any_number_of_times
13
+ Rapns::App.stub(:count).and_raise(ActiveRecord::StatementInvalid, "test")
14
+ Rapns::Upgraded.stub(:puts)
21
15
  Rapns::Upgraded.should_receive(:exit).with(1)
22
16
  Rapns::Upgraded.check(:exit => true)
23
17
  end
24
18
 
25
19
  it 'does not exit if Rapns has not been upgraded and :exit is false' do
26
20
  Rapns.config.stub(:embedded => true)
27
- Rapns::App.stub(:count).and_raise(ActiveRecord::StatementInvalid)
28
- Rapns::Upgraded.should_receive(:puts).any_number_of_times
21
+ Rapns::App.stub(:count).and_raise(ActiveRecord::StatementInvalid, "test")
22
+ Rapns::Upgraded.stub(:puts)
29
23
  Rapns::Upgraded.should_not_receive(:exit)
30
24
  Rapns::Upgraded.check(:exit => false)
31
25
  end
32
26
 
33
27
  it 'does not exit if Rapns has not been upgraded and is in push mode' do
34
28
  Rapns.config.stub(:push => true)
35
- Rapns::App.stub(:count).and_raise(ActiveRecord::StatementInvalid)
36
- Rapns::Upgraded.should_receive(:puts).any_number_of_times
29
+ Rapns::App.stub(:count).and_raise(ActiveRecord::StatementInvalid, "test")
30
+ Rapns::Upgraded.stub(:puts)
37
31
  Rapns::Upgraded.should_not_receive(:exit)
38
32
  Rapns::Upgraded.check(:exit => false)
39
33
  end
@@ -9,6 +9,7 @@ rescue LoadError
9
9
  end
10
10
 
11
11
  require 'active_record'
12
+ # require 'timecop'
12
13
 
13
14
  jruby = defined?(RUBY_ENGINE) && RUBY_ENGINE == 'jruby'
14
15
 
@@ -52,6 +53,11 @@ Bundler.require(:default)
52
53
 
53
54
  require 'database_cleaner'
54
55
 
56
+ # Ensure SQLite3Adapter is loaded before DatabaseCleaner so that DC
57
+ # can detect the correct superclass.
58
+ # SQLite3 is used by the acceptance tests.
59
+ require 'active_record/connection_adapters/sqlite3_adapter'
60
+
55
61
  DatabaseCleaner.strategy = :truncation
56
62
 
57
63
  require 'rapns'
@@ -76,7 +82,9 @@ RSpec.configure do |config|
76
82
  config.after(:each) do
77
83
  Rapns.logger = nil
78
84
  Rapns::Daemon.store = nil
79
- Rapns.config.set_defaults if Rapns.config.kind_of?(Rapns::Configuration)
85
+ Rapns::Deprecation.muted do
86
+ Rapns.config.set_defaults if Rapns.config.kind_of?(Rapns::Configuration)
87
+ end
80
88
  end
81
89
  end
82
90
 
metadata CHANGED
@@ -1,80 +1,86 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rapns
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.2
5
4
  prerelease:
5
+ version: 3.4.0
6
6
  platform: java
7
7
  authors:
8
8
  - Ian Leitch
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-30 00:00:00.000000000 Z
12
+ date: 2013-08-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
+ prerelease: false
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '1.0'
21
+ none: false
22
+ type: :runtime
15
23
  name: multi_json
16
24
  version_requirements: !ruby/object:Gem::Requirement
17
25
  requirements:
18
- - - ~>
26
+ - - "~>"
19
27
  - !ruby/object:Gem::Version
20
28
  version: '1.0'
21
29
  none: false
30
+ - !ruby/object:Gem::Dependency
31
+ prerelease: false
22
32
  requirement: !ruby/object:Gem::Requirement
23
33
  requirements:
24
- - - ~>
34
+ - - ">="
25
35
  - !ruby/object:Gem::Version
26
- version: '1.0'
36
+ version: !binary |-
37
+ MA==
27
38
  none: false
28
- prerelease: false
29
39
  type: :runtime
30
- - !ruby/object:Gem::Dependency
31
40
  name: net-http-persistent
32
41
  version_requirements: !ruby/object:Gem::Requirement
33
42
  requirements:
34
- - - '>='
43
+ - - ">="
35
44
  - !ruby/object:Gem::Version
36
- version: '0'
45
+ version: !binary |-
46
+ MA==
37
47
  none: false
48
+ - !ruby/object:Gem::Dependency
49
+ prerelease: false
38
50
  requirement: !ruby/object:Gem::Requirement
39
51
  requirements:
40
- - - '>='
52
+ - - ">="
41
53
  - !ruby/object:Gem::Version
42
- version: '0'
54
+ version: !binary |-
55
+ MA==
43
56
  none: false
44
- prerelease: false
45
57
  type: :runtime
46
- - !ruby/object:Gem::Dependency
47
58
  name: jruby-openssl
48
59
  version_requirements: !ruby/object:Gem::Requirement
49
60
  requirements:
50
- - - '>='
61
+ - - ">="
51
62
  - !ruby/object:Gem::Version
52
- version: '0'
63
+ version: !binary |-
64
+ MA==
53
65
  none: false
66
+ - !ruby/object:Gem::Dependency
67
+ prerelease: false
54
68
  requirement: !ruby/object:Gem::Requirement
55
69
  requirements:
56
- - - '>='
70
+ - - ">="
57
71
  - !ruby/object:Gem::Version
58
- version: '0'
72
+ version: !binary |-
73
+ MA==
59
74
  none: false
60
- prerelease: false
61
75
  type: :runtime
62
- - !ruby/object:Gem::Dependency
63
76
  name: activerecord-jdbc-adapter
64
77
  version_requirements: !ruby/object:Gem::Requirement
65
78
  requirements:
66
- - - '>='
79
+ - - ">="
67
80
  - !ruby/object:Gem::Version
68
- version: '0'
81
+ version: !binary |-
82
+ MA==
69
83
  none: false
70
- requirement: !ruby/object:Gem::Requirement
71
- requirements:
72
- - - '>='
73
- - !ruby/object:Gem::Version
74
- version: '0'
75
- none: false
76
- prerelease: false
77
- type: :runtime
78
84
  description: Professional grade APNs and GCM for Ruby
79
85
  email:
80
86
  - port001@gmail.com
@@ -95,6 +101,7 @@ files:
95
101
  - lib/generators/templates/create_rapns_notifications.rb
96
102
  - lib/generators/templates/rapns.rb
97
103
  - lib/rapns.rb
104
+ - lib/rapns/TODO
98
105
  - lib/rapns/apns/app.rb
99
106
  - lib/rapns/apns/binary_notification_validator.rb
100
107
  - lib/rapns/apns/device_token_format_validator.rb
@@ -105,18 +112,18 @@ files:
105
112
  - lib/rapns/configuration.rb
106
113
  - lib/rapns/daemon.rb
107
114
  - lib/rapns/daemon/apns/app_runner.rb
115
+ - lib/rapns/daemon/apns/certificate_expired_error.rb
108
116
  - lib/rapns/daemon/apns/connection.rb
109
117
  - lib/rapns/daemon/apns/delivery.rb
110
118
  - lib/rapns/daemon/apns/delivery_handler.rb
111
119
  - lib/rapns/daemon/apns/disconnection_error.rb
112
120
  - lib/rapns/daemon/apns/feedback_receiver.rb
113
121
  - lib/rapns/daemon/app_runner.rb
122
+ - lib/rapns/daemon/batch.rb
114
123
  - lib/rapns/daemon/delivery.rb
115
124
  - lib/rapns/daemon/delivery_error.rb
116
125
  - lib/rapns/daemon/delivery_handler.rb
117
- - lib/rapns/daemon/delivery_queue.rb
118
- - lib/rapns/daemon/delivery_queue_18.rb
119
- - lib/rapns/daemon/delivery_queue_19.rb
126
+ - lib/rapns/daemon/delivery_handler_collection.rb
120
127
  - lib/rapns/daemon/feeder.rb
121
128
  - lib/rapns/daemon/gcm/app_runner.rb
122
129
  - lib/rapns/daemon/gcm/delivery.rb
@@ -146,8 +153,6 @@ files:
146
153
  - lib/tasks/cane.rake
147
154
  - lib/tasks/test.rake
148
155
  - config/database.yml
149
- - spec/acceptance/gcm_upgrade_spec.rb
150
- - spec/acceptance_spec_helper.rb
151
156
  - spec/support/cert_with_password.pem
152
157
  - spec/support/cert_without_password.pem
153
158
  - spec/support/simplecov_helper.rb
@@ -159,6 +164,7 @@ files:
159
164
  - spec/unit/app_spec.rb
160
165
  - spec/unit/configuration_spec.rb
161
166
  - spec/unit/daemon/apns/app_runner_spec.rb
167
+ - spec/unit/daemon/apns/certificate_expired_error_spec.rb
162
168
  - spec/unit/daemon/apns/connection_spec.rb
163
169
  - spec/unit/daemon/apns/delivery_handler_spec.rb
164
170
  - spec/unit/daemon/apns/delivery_spec.rb
@@ -166,9 +172,10 @@ files:
166
172
  - spec/unit/daemon/apns/feedback_receiver_spec.rb
167
173
  - spec/unit/daemon/app_runner_shared.rb
168
174
  - spec/unit/daemon/app_runner_spec.rb
175
+ - spec/unit/daemon/batch_spec.rb
169
176
  - spec/unit/daemon/delivery_error_spec.rb
177
+ - spec/unit/daemon/delivery_handler_collection_spec.rb
170
178
  - spec/unit/daemon/delivery_handler_shared.rb
171
- - spec/unit/daemon/delivery_queue_spec.rb
172
179
  - spec/unit/daemon/feeder_spec.rb
173
180
  - spec/unit/daemon/gcm/app_runner_spec.rb
174
181
  - spec/unit/daemon/gcm/delivery_handler_spec.rb
@@ -200,21 +207,23 @@ require_paths:
200
207
  - lib
201
208
  required_ruby_version: !ruby/object:Gem::Requirement
202
209
  requirements:
203
- - - '>='
210
+ - - ">="
204
211
  - !ruby/object:Gem::Version
212
+ version: !binary |-
213
+ MA==
214
+ hash: 2
205
215
  segments:
206
216
  - 0
207
- version: '0'
208
- hash: 2
209
217
  none: false
210
218
  required_rubygems_version: !ruby/object:Gem::Requirement
211
219
  requirements:
212
- - - '>='
220
+ - - ">="
213
221
  - !ruby/object:Gem::Version
222
+ version: !binary |-
223
+ MA==
224
+ hash: 2
214
225
  segments:
215
226
  - 0
216
- version: '0'
217
- hash: 2
218
227
  none: false
219
228
  requirements: []
220
229
  rubyforge_project:
@@ -224,8 +233,6 @@ specification_version: 3
224
233
  summary: Professional grade APNs and GCM for Ruby
225
234
  test_files:
226
235
  - config/database.yml
227
- - spec/acceptance/gcm_upgrade_spec.rb
228
- - spec/acceptance_spec_helper.rb
229
236
  - spec/support/cert_with_password.pem
230
237
  - spec/support/cert_without_password.pem
231
238
  - spec/support/simplecov_helper.rb
@@ -237,6 +244,7 @@ test_files:
237
244
  - spec/unit/app_spec.rb
238
245
  - spec/unit/configuration_spec.rb
239
246
  - spec/unit/daemon/apns/app_runner_spec.rb
247
+ - spec/unit/daemon/apns/certificate_expired_error_spec.rb
240
248
  - spec/unit/daemon/apns/connection_spec.rb
241
249
  - spec/unit/daemon/apns/delivery_handler_spec.rb
242
250
  - spec/unit/daemon/apns/delivery_spec.rb
@@ -244,9 +252,10 @@ test_files:
244
252
  - spec/unit/daemon/apns/feedback_receiver_spec.rb
245
253
  - spec/unit/daemon/app_runner_shared.rb
246
254
  - spec/unit/daemon/app_runner_spec.rb
255
+ - spec/unit/daemon/batch_spec.rb
247
256
  - spec/unit/daemon/delivery_error_spec.rb
257
+ - spec/unit/daemon/delivery_handler_collection_spec.rb
248
258
  - spec/unit/daemon/delivery_handler_shared.rb
249
- - spec/unit/daemon/delivery_queue_spec.rb
250
259
  - spec/unit/daemon/feeder_spec.rb
251
260
  - spec/unit/daemon/gcm/app_runner_spec.rb
252
261
  - spec/unit/daemon/gcm/delivery_handler_spec.rb
@@ -1,42 +0,0 @@
1
- module Rapns
2
- module Daemon
3
- if RUBY_VERSION < '1.9'
4
- require 'rapns/daemon/delivery_queue_18'
5
- ancestor_class = DeliveryQueue18
6
- else
7
- require 'rapns/daemon/delivery_queue_19'
8
- ancestor_class = DeliveryQueue19
9
- end
10
-
11
- class DeliveryQueue < ancestor_class
12
- class WakeupError < StandardError; end
13
-
14
- def initialize
15
- @num_notifications = 0
16
- @queue = []
17
- @waiting = []
18
-
19
- super
20
- end
21
-
22
- def wakeup(thread)
23
- synchronize do
24
- t = @waiting.delete(thread)
25
- t.raise WakeupError if t
26
- end
27
- end
28
-
29
- def size
30
- synchronize { @queue.size }
31
- end
32
-
33
- def notification_processed
34
- synchronize { @num_notifications -= 1 }
35
- end
36
-
37
- def notifications_processed?
38
- synchronize { @num_notifications <= 0 }
39
- end
40
- end
41
- end
42
- end