rapns 3.3.2 → 3.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +7 -0
  3. data/README.md +19 -21
  4. data/bin/rapns +14 -13
  5. data/lib/generators/templates/rapns.rb +8 -4
  6. data/lib/rapns.rb +7 -0
  7. data/lib/rapns/TODO +3 -0
  8. data/lib/rapns/apns/feedback.rb +4 -2
  9. data/lib/rapns/app.rb +3 -1
  10. data/lib/rapns/configuration.rb +8 -1
  11. data/lib/rapns/daemon.rb +3 -1
  12. data/lib/rapns/daemon/apns/app_runner.rb +3 -2
  13. data/lib/rapns/daemon/apns/certificate_expired_error.rb +20 -0
  14. data/lib/rapns/daemon/apns/connection.rb +26 -0
  15. data/lib/rapns/daemon/apns/delivery.rb +2 -1
  16. data/lib/rapns/daemon/apns/delivery_handler.rb +2 -2
  17. data/lib/rapns/daemon/app_runner.rb +50 -28
  18. data/lib/rapns/daemon/batch.rb +100 -0
  19. data/lib/rapns/daemon/delivery.rb +6 -10
  20. data/lib/rapns/daemon/delivery_handler.rb +14 -12
  21. data/lib/rapns/daemon/delivery_handler_collection.rb +33 -0
  22. data/lib/rapns/daemon/feeder.rb +3 -5
  23. data/lib/rapns/daemon/gcm/delivery.rb +5 -4
  24. data/lib/rapns/daemon/gcm/delivery_handler.rb +2 -2
  25. data/lib/rapns/daemon/store/active_record.rb +23 -2
  26. data/lib/rapns/deprecation.rb +7 -6
  27. data/lib/rapns/logger.rb +1 -1
  28. data/lib/rapns/notification.rb +5 -3
  29. data/lib/rapns/reflection.rb +1 -1
  30. data/lib/rapns/version.rb +1 -1
  31. data/lib/tasks/cane.rake +1 -1
  32. data/lib/tasks/test.rake +8 -3
  33. data/spec/unit/apns/app_spec.rb +4 -4
  34. data/spec/unit/apns_feedback_spec.rb +1 -1
  35. data/spec/unit/configuration_spec.rb +12 -6
  36. data/spec/unit/daemon/apns/app_runner_spec.rb +6 -4
  37. data/spec/unit/daemon/apns/certificate_expired_error_spec.rb +11 -0
  38. data/spec/unit/daemon/apns/connection_spec.rb +46 -10
  39. data/spec/unit/daemon/apns/delivery_handler_spec.rb +24 -18
  40. data/spec/unit/daemon/apns/delivery_spec.rb +11 -12
  41. data/spec/unit/daemon/apns/feedback_receiver_spec.rb +16 -16
  42. data/spec/unit/daemon/app_runner_shared.rb +27 -10
  43. data/spec/unit/daemon/app_runner_spec.rb +48 -28
  44. data/spec/unit/daemon/batch_spec.rb +160 -0
  45. data/spec/unit/daemon/delivery_handler_collection_spec.rb +37 -0
  46. data/spec/unit/daemon/delivery_handler_shared.rb +20 -11
  47. data/spec/unit/daemon/feeder_spec.rb +12 -12
  48. data/spec/unit/daemon/gcm/app_runner_spec.rb +4 -2
  49. data/spec/unit/daemon/gcm/delivery_handler_spec.rb +18 -10
  50. data/spec/unit/daemon/gcm/delivery_spec.rb +47 -17
  51. data/spec/unit/daemon/interruptible_sleep_spec.rb +3 -3
  52. data/spec/unit/daemon/reflectable_spec.rb +1 -1
  53. data/spec/unit/daemon/store/active_record/reconnectable_spec.rb +1 -1
  54. data/spec/unit/daemon/store/active_record_spec.rb +87 -10
  55. data/spec/unit/daemon_spec.rb +6 -6
  56. data/spec/unit/deprecation_spec.rb +2 -2
  57. data/spec/unit/logger_spec.rb +33 -17
  58. data/spec/unit/notification_shared.rb +7 -3
  59. data/spec/unit/upgraded_spec.rb +8 -14
  60. data/spec/unit_spec_helper.rb +9 -1
  61. metadata +57 -76
  62. data/lib/rapns/daemon/delivery_queue.rb +0 -42
  63. data/lib/rapns/daemon/delivery_queue_18.rb +0 -44
  64. data/lib/rapns/daemon/delivery_queue_19.rb +0 -42
  65. data/spec/acceptance/gcm_upgrade_spec.rb +0 -34
  66. data/spec/acceptance_spec_helper.rb +0 -85
  67. 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,61 +1,51 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rapns
3
- version: !ruby/object:Gem::Version
4
- hash: 15
5
- prerelease:
6
- segments:
7
- - 3
8
- - 3
9
- - 2
10
- version: 3.3.2
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.4.0
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Ian Leitch
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2013-06-30 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
11
+ date: 2013-08-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
21
14
  name: multi_json
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
26
17
  - - ~>
27
- - !ruby/object:Gem::Version
28
- hash: 15
29
- segments:
30
- - 1
31
- - 0
32
- version: "1.0"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
33
20
  type: :runtime
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: net-http-persistent
37
21
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
39
- none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 3
44
- segments:
45
- - 0
46
- version: "0"
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: net-http-persistent
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
47
34
  type: :runtime
48
- version_requirements: *id002
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
49
41
  description: Professional grade APNs and GCM for Ruby
50
- email:
42
+ email:
51
43
  - port001@gmail.com
52
- executables:
44
+ executables:
53
45
  - rapns
54
46
  extensions: []
55
-
56
47
  extra_rdoc_files: []
57
-
58
- files:
48
+ files:
59
49
  - CHANGELOG.md
60
50
  - LICENSE
61
51
  - README.md
@@ -68,6 +58,7 @@ files:
68
58
  - lib/generators/templates/create_rapns_notifications.rb
69
59
  - lib/generators/templates/rapns.rb
70
60
  - lib/rapns.rb
61
+ - lib/rapns/TODO
71
62
  - lib/rapns/apns/app.rb
72
63
  - lib/rapns/apns/binary_notification_validator.rb
73
64
  - lib/rapns/apns/device_token_format_validator.rb
@@ -78,18 +69,18 @@ files:
78
69
  - lib/rapns/configuration.rb
79
70
  - lib/rapns/daemon.rb
80
71
  - lib/rapns/daemon/apns/app_runner.rb
72
+ - lib/rapns/daemon/apns/certificate_expired_error.rb
81
73
  - lib/rapns/daemon/apns/connection.rb
82
74
  - lib/rapns/daemon/apns/delivery.rb
83
75
  - lib/rapns/daemon/apns/delivery_handler.rb
84
76
  - lib/rapns/daemon/apns/disconnection_error.rb
85
77
  - lib/rapns/daemon/apns/feedback_receiver.rb
86
78
  - lib/rapns/daemon/app_runner.rb
79
+ - lib/rapns/daemon/batch.rb
87
80
  - lib/rapns/daemon/delivery.rb
88
81
  - lib/rapns/daemon/delivery_error.rb
89
82
  - lib/rapns/daemon/delivery_handler.rb
90
- - lib/rapns/daemon/delivery_queue.rb
91
- - lib/rapns/daemon/delivery_queue_18.rb
92
- - lib/rapns/daemon/delivery_queue_19.rb
83
+ - lib/rapns/daemon/delivery_handler_collection.rb
93
84
  - lib/rapns/daemon/feeder.rb
94
85
  - lib/rapns/daemon/gcm/app_runner.rb
95
86
  - lib/rapns/daemon/gcm/delivery.rb
@@ -119,8 +110,6 @@ files:
119
110
  - lib/tasks/cane.rake
120
111
  - lib/tasks/test.rake
121
112
  - config/database.yml
122
- - spec/acceptance/gcm_upgrade_spec.rb
123
- - spec/acceptance_spec_helper.rb
124
113
  - spec/support/cert_with_password.pem
125
114
  - spec/support/cert_without_password.pem
126
115
  - spec/support/simplecov_helper.rb
@@ -132,6 +121,7 @@ files:
132
121
  - spec/unit/app_spec.rb
133
122
  - spec/unit/configuration_spec.rb
134
123
  - spec/unit/daemon/apns/app_runner_spec.rb
124
+ - spec/unit/daemon/apns/certificate_expired_error_spec.rb
135
125
  - spec/unit/daemon/apns/connection_spec.rb
136
126
  - spec/unit/daemon/apns/delivery_handler_spec.rb
137
127
  - spec/unit/daemon/apns/delivery_spec.rb
@@ -139,9 +129,10 @@ files:
139
129
  - spec/unit/daemon/apns/feedback_receiver_spec.rb
140
130
  - spec/unit/daemon/app_runner_shared.rb
141
131
  - spec/unit/daemon/app_runner_spec.rb
132
+ - spec/unit/daemon/batch_spec.rb
142
133
  - spec/unit/daemon/delivery_error_spec.rb
134
+ - spec/unit/daemon/delivery_handler_collection_spec.rb
143
135
  - spec/unit/daemon/delivery_handler_shared.rb
144
- - spec/unit/daemon/delivery_queue_spec.rb
145
136
  - spec/unit/daemon/feeder_spec.rb
146
137
  - spec/unit/daemon/gcm/app_runner_spec.rb
147
138
  - spec/unit/daemon/gcm/delivery_handler_spec.rb
@@ -167,41 +158,29 @@ files:
167
158
  - bin/rapns
168
159
  homepage: https://github.com/ileitch/rapns
169
160
  licenses: []
170
-
161
+ metadata: {}
171
162
  post_install_message:
172
163
  rdoc_options: []
173
-
174
- require_paths:
164
+ require_paths:
175
165
  - lib
176
- required_ruby_version: !ruby/object:Gem::Requirement
177
- none: false
178
- requirements:
179
- - - ">="
180
- - !ruby/object:Gem::Version
181
- hash: 3
182
- segments:
183
- - 0
184
- version: "0"
185
- required_rubygems_version: !ruby/object:Gem::Requirement
186
- none: false
187
- requirements:
188
- - - ">="
189
- - !ruby/object:Gem::Version
190
- hash: 3
191
- segments:
192
- - 0
193
- version: "0"
166
+ required_ruby_version: !ruby/object:Gem::Requirement
167
+ requirements:
168
+ - - '>='
169
+ - !ruby/object:Gem::Version
170
+ version: '0'
171
+ required_rubygems_version: !ruby/object:Gem::Requirement
172
+ requirements:
173
+ - - '>='
174
+ - !ruby/object:Gem::Version
175
+ version: '0'
194
176
  requirements: []
195
-
196
177
  rubyforge_project:
197
- rubygems_version: 1.8.24
178
+ rubygems_version: 2.0.3
198
179
  signing_key:
199
- specification_version: 3
180
+ specification_version: 4
200
181
  summary: Professional grade APNs and GCM for Ruby
201
- test_files:
182
+ test_files:
202
183
  - config/database.yml
203
- - spec/acceptance/gcm_upgrade_spec.rb
204
- - spec/acceptance_spec_helper.rb
205
184
  - spec/support/cert_with_password.pem
206
185
  - spec/support/cert_without_password.pem
207
186
  - spec/support/simplecov_helper.rb
@@ -213,6 +192,7 @@ test_files:
213
192
  - spec/unit/app_spec.rb
214
193
  - spec/unit/configuration_spec.rb
215
194
  - spec/unit/daemon/apns/app_runner_spec.rb
195
+ - spec/unit/daemon/apns/certificate_expired_error_spec.rb
216
196
  - spec/unit/daemon/apns/connection_spec.rb
217
197
  - spec/unit/daemon/apns/delivery_handler_spec.rb
218
198
  - spec/unit/daemon/apns/delivery_spec.rb
@@ -220,9 +200,10 @@ test_files:
220
200
  - spec/unit/daemon/apns/feedback_receiver_spec.rb
221
201
  - spec/unit/daemon/app_runner_shared.rb
222
202
  - spec/unit/daemon/app_runner_spec.rb
203
+ - spec/unit/daemon/batch_spec.rb
223
204
  - spec/unit/daemon/delivery_error_spec.rb
205
+ - spec/unit/daemon/delivery_handler_collection_spec.rb
224
206
  - spec/unit/daemon/delivery_handler_shared.rb
225
- - spec/unit/daemon/delivery_queue_spec.rb
226
207
  - spec/unit/daemon/feeder_spec.rb
227
208
  - spec/unit/daemon/gcm/app_runner_spec.rb
228
209
  - 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