rpush 4.1.1 → 5.3.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.
Files changed (136) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +261 -161
  3. data/README.md +103 -17
  4. data/lib/generators/rpush_migration_generator.rb +1 -0
  5. data/lib/generators/templates/rpush.rb +4 -0
  6. data/lib/generators/templates/rpush_4_2_0_updates.rb +10 -0
  7. data/lib/rpush/cli.rb +1 -1
  8. data/lib/rpush/client/active_model.rb +4 -1
  9. data/lib/rpush/client/active_model/adm/data_validator.rb +1 -1
  10. data/lib/rpush/client/active_model/apns/device_token_format_validator.rb +2 -2
  11. data/lib/rpush/client/active_model/apns/notification.rb +9 -1
  12. data/lib/rpush/client/active_model/apns/notification_payload_size_validator.rb +15 -0
  13. data/lib/rpush/client/active_model/apns2/notification.rb +14 -0
  14. data/lib/rpush/client/active_model/gcm/expiry_collapse_key_mutual_inclusion_validator.rb +1 -1
  15. data/lib/rpush/client/active_model/gcm/notification.rb +4 -3
  16. data/lib/rpush/client/active_model/payload_data_size_validator.rb +1 -1
  17. data/lib/rpush/client/active_model/registration_ids_count_validator.rb +1 -1
  18. data/lib/rpush/client/active_model/webpush/app.rb +41 -0
  19. data/lib/rpush/client/active_model/webpush/notification.rb +66 -0
  20. data/lib/rpush/client/active_model/wns/notification.rb +8 -0
  21. data/lib/rpush/client/active_record.rb +4 -0
  22. data/lib/rpush/client/active_record/apns/active_record_serializable_notification.rb +65 -0
  23. data/lib/rpush/client/active_record/apns/notification.rb +1 -29
  24. data/lib/rpush/client/active_record/apns2/notification.rb +4 -1
  25. data/lib/rpush/client/active_record/apnsp8/notification.rb +1 -0
  26. data/lib/rpush/client/active_record/app.rb +1 -1
  27. data/lib/rpush/client/active_record/notification.rb +1 -1
  28. data/lib/rpush/client/active_record/webpush/app.rb +11 -0
  29. data/lib/rpush/client/active_record/webpush/notification.rb +12 -0
  30. data/lib/rpush/client/redis.rb +3 -0
  31. data/lib/rpush/client/redis/apns2/notification.rb +1 -0
  32. data/lib/rpush/client/redis/apnsp8/notification.rb +2 -0
  33. data/lib/rpush/client/redis/notification.rb +2 -1
  34. data/lib/rpush/client/redis/pushy/notification.rb +0 -1
  35. data/lib/rpush/client/redis/webpush/app.rb +15 -0
  36. data/lib/rpush/client/redis/webpush/notification.rb +15 -0
  37. data/lib/rpush/configuration.rb +3 -2
  38. data/lib/rpush/daemon.rb +4 -1
  39. data/lib/rpush/daemon/apns/feedback_receiver.rb +2 -1
  40. data/lib/rpush/daemon/apns2/delivery.rb +13 -2
  41. data/lib/rpush/daemon/apnsp8/delivery.rb +7 -2
  42. data/lib/rpush/daemon/app_runner.rb +1 -1
  43. data/lib/rpush/daemon/batch.rb +12 -5
  44. data/lib/rpush/daemon/delivery.rb +1 -2
  45. data/lib/rpush/daemon/dispatcher/apns_http2.rb +4 -2
  46. data/lib/rpush/daemon/dispatcher/apnsp8_http2.rb +2 -1
  47. data/lib/rpush/daemon/signal_handler.rb +1 -1
  48. data/lib/rpush/daemon/store/active_record.rb +1 -1
  49. data/lib/rpush/daemon/store/active_record/reconnectable.rb +1 -1
  50. data/lib/rpush/daemon/store/redis.rb +1 -1
  51. data/lib/rpush/daemon/webpush.rb +10 -0
  52. data/lib/rpush/daemon/webpush/delivery.rb +114 -0
  53. data/lib/rpush/daemon/wns/badge_request.rb +8 -3
  54. data/lib/rpush/daemon/wns/raw_request.rb +9 -2
  55. data/lib/rpush/daemon/wns/toast_request.rb +6 -2
  56. data/lib/rpush/logger.rb +1 -0
  57. data/lib/rpush/version.rb +3 -3
  58. data/spec/.rubocop.yml +1 -1
  59. data/spec/functional/apns2_spec.rb +97 -2
  60. data/spec/functional/gcm_priority_spec.rb +40 -0
  61. data/spec/functional/webpush_spec.rb +30 -0
  62. data/spec/spec_helper.rb +2 -0
  63. data/spec/support/active_record_setup.rb +3 -1
  64. data/spec/support/simplecov_helper.rb +1 -1
  65. data/spec/unit/client/active_record/adm/app_spec.rb +2 -54
  66. data/spec/unit/client/active_record/adm/notification_spec.rb +2 -39
  67. data/spec/unit/client/active_record/apns/app_spec.rb +3 -26
  68. data/spec/unit/client/active_record/apns/feedback_spec.rb +1 -5
  69. data/spec/unit/client/active_record/apns/notification_spec.rb +29 -288
  70. data/spec/unit/client/active_record/apns2/app_spec.rb +4 -0
  71. data/spec/unit/client/active_record/apns2/notification_spec.rb +65 -0
  72. data/spec/unit/client/active_record/apnsp8/notification_spec.rb +28 -0
  73. data/spec/unit/client/active_record/app_spec.rb +1 -26
  74. data/spec/unit/client/active_record/gcm/app_spec.rb +3 -1
  75. data/spec/unit/client/active_record/gcm/notification_spec.rb +6 -83
  76. data/spec/unit/client/active_record/notification_spec.rb +10 -11
  77. data/spec/unit/client/active_record/pushy/app_spec.rb +2 -13
  78. data/spec/unit/client/active_record/pushy/notification_spec.rb +2 -55
  79. data/spec/unit/client/active_record/shared/app.rb +14 -0
  80. data/spec/unit/{notification_shared.rb → client/active_record/shared/notification.rb} +12 -7
  81. data/spec/unit/client/active_record/webpush/app_spec.rb +6 -0
  82. data/spec/unit/client/active_record/webpush/notification_spec.rb +6 -0
  83. data/spec/unit/client/active_record/wns/badge_notification_spec.rb +1 -11
  84. data/spec/unit/client/active_record/wns/raw_notification_spec.rb +3 -12
  85. data/spec/unit/client/active_record/wpns/app_spec.rb +3 -1
  86. data/spec/unit/client/active_record/wpns/notification_spec.rb +2 -17
  87. data/spec/unit/client/redis/adm/app_spec.rb +5 -0
  88. data/spec/unit/client/redis/adm/notification_spec.rb +5 -0
  89. data/spec/unit/client/redis/apns/app_spec.rb +5 -0
  90. data/spec/unit/client/redis/apns/feedback_spec.rb +5 -0
  91. data/spec/unit/client/redis/apns/notification_spec.rb +50 -0
  92. data/spec/unit/client/redis/apns2/app_spec.rb +4 -0
  93. data/spec/unit/client/redis/apns2/notification_spec.rb +50 -0
  94. data/spec/unit/client/redis/apnsp8/notification_spec.rb +29 -0
  95. data/spec/unit/client/redis/app_spec.rb +5 -0
  96. data/spec/unit/client/redis/gcm/app_spec.rb +5 -0
  97. data/spec/unit/client/redis/gcm/notification_spec.rb +5 -0
  98. data/spec/unit/client/redis/notification_spec.rb +5 -0
  99. data/spec/unit/client/redis/pushy/app_spec.rb +5 -0
  100. data/spec/unit/client/redis/pushy/notification_spec.rb +5 -0
  101. data/spec/unit/client/redis/webpush/app_spec.rb +5 -0
  102. data/spec/unit/client/redis/webpush/notification_spec.rb +5 -0
  103. data/spec/unit/client/redis/wns/badge_notification_spec.rb +5 -0
  104. data/spec/unit/client/redis/wns/raw_notification_spec.rb +22 -0
  105. data/spec/unit/client/redis/wpns/app_spec.rb +5 -0
  106. data/spec/unit/client/redis/wpns/notification_spec.rb +5 -0
  107. data/spec/unit/client/shared/adm/app.rb +51 -0
  108. data/spec/unit/client/shared/adm/notification.rb +39 -0
  109. data/spec/unit/client/shared/apns/app.rb +29 -0
  110. data/spec/unit/client/shared/apns/feedback.rb +9 -0
  111. data/spec/unit/client/shared/apns/notification.rb +262 -0
  112. data/spec/unit/client/shared/app.rb +17 -0
  113. data/spec/unit/client/shared/gcm/app.rb +4 -0
  114. data/spec/unit/client/shared/gcm/notification.rb +77 -0
  115. data/spec/unit/client/shared/notification.rb +10 -0
  116. data/spec/unit/client/shared/pushy/app.rb +17 -0
  117. data/spec/unit/client/shared/pushy/notification.rb +55 -0
  118. data/spec/unit/client/shared/webpush/app.rb +33 -0
  119. data/spec/unit/client/shared/webpush/notification.rb +83 -0
  120. data/spec/unit/client/shared/wns/badge_notification.rb +15 -0
  121. data/spec/unit/client/shared/wns/raw_notification.rb +21 -0
  122. data/spec/unit/client/shared/wpns/app.rb +4 -0
  123. data/spec/unit/client/shared/wpns/notification.rb +18 -0
  124. data/spec/unit/daemon/apns/feedback_receiver_spec.rb +19 -1
  125. data/spec/unit/daemon/batch_spec.rb +50 -2
  126. data/spec/unit/daemon/delivery_spec.rb +10 -0
  127. data/spec/unit/daemon/gcm/delivery_spec.rb +1 -1
  128. data/spec/unit/daemon/shared/store.rb +312 -0
  129. data/spec/unit/daemon/store/active_record/reconnectable_spec.rb +7 -7
  130. data/spec/unit/daemon/store/active_record_spec.rb +7 -295
  131. data/spec/unit/daemon/store/redis_spec.rb +4 -293
  132. data/spec/unit/daemon/webpush/delivery_spec.rb +142 -0
  133. data/spec/unit/daemon/wns/post_request_spec.rb +64 -0
  134. data/spec/unit_spec_helper.rb +3 -0
  135. metadata +140 -13
  136. data/lib/rpush/client/active_model/apns/binary_notification_validator.rb +0 -16
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f974d91d6caa8c660383285d254a61dbb001fd7a4000540cc76b798f77b09d9f
4
- data.tar.gz: 3d4fe2bfc3b354b6c25cc47a5a81f0f40e6a3a6b38ac9750fac1c117555e379f
3
+ metadata.gz: 2da7543fed0193b0dcd20169efb5abd8170f15bc5043ef4ce2cb4d0e56380b4f
4
+ data.tar.gz: d7ba0f5b1dc97d17a7d23bf623d900b6da26b428ddcf4a8a93fce7641ab20f2d
5
5
  SHA512:
6
- metadata.gz: 6a4d532a9c05739a246454c0194552a84270a4f3dc864f7279cb3ca2671e1fe02bc624ecad001083aa5745c21fd428af04b8aa4833581def109e77a6a5df7207
7
- data.tar.gz: 6b1311abb89a2d78e4aa447521815177a6cc7b546665b636685fe600c8219d35833ccc79fae892496b6488f3b444b886395700b09fdb3c76268ecd55e0878ab3
6
+ metadata.gz: 745e0799a2e66d4813b99c4a93eb5d172dcbbe4c1317bd945b1addf177720f489bbdb0d83d918b9ab0ba4b98c35d186c0522d39740541097e16e90d0687487d8
7
+ data.tar.gz: e6d249ad9c7366cc54267e4eaa6f3d1bb3670dc6211380aa8bced26b33053cc0fda328f33b72a1d843cdd794e44e0793cd579e49745c60e46aa83155a5d0acca
@@ -1,5 +1,73 @@
1
1
  # Changelog
2
2
 
3
+ ## [v5.3.0](https://github.com/rpush/rpush/tree/v5.3.0) (2021-01-07)
4
+
5
+ [Full Changelog](https://github.com/rpush/rpush/compare/v5.2.0...v5.3.0)
6
+
7
+ **Implemented enhancements:**
8
+
9
+ - support for Webpush with VAPID [\#574](https://github.com/rpush/rpush/pull/574) ([jkraemer](https://github.com/jkraemer))
10
+
11
+ **Merged pull requests:**
12
+
13
+ - Bug fix: APNS P8 Notifications Are Marked as Invalid When the Payload Exceeds 2kb \(2048 bytes\) [\#583](https://github.com/rpush/rpush/pull/583) ([gregblake](https://github.com/gregblake))
14
+ - Fix more Rails 6.1 deprecation warnings [\#582](https://github.com/rpush/rpush/pull/582) ([jas14](https://github.com/jas14))
15
+ - Feature/apns2 default headers [\#579](https://github.com/rpush/rpush/pull/579) ([jkraemer](https://github.com/jkraemer))
16
+ - Fix APNS2 documentation in README [\#578](https://github.com/rpush/rpush/pull/578) ([jamestjw](https://github.com/jamestjw))
17
+ - Fixed typo with misspell [\#575](https://github.com/rpush/rpush/pull/575) ([hsbt](https://github.com/hsbt))
18
+
19
+ ## [v5.2.0](https://github.com/rpush/rpush/tree/v5.2.0) (2020-10-08)
20
+
21
+ [Full Changelog](https://github.com/rpush/rpush/compare/v5.1.0...v5.2.0)
22
+
23
+ **Merged pull requests:**
24
+
25
+ - Allow opting out of foreground stdout logging [\#571](https://github.com/rpush/rpush/pull/571) ([benlangfeld](https://github.com/benlangfeld))
26
+ - Do not retry notifications which already have been delivered/failed [\#567](https://github.com/rpush/rpush/pull/567) ([AlexTatarnikov](https://github.com/AlexTatarnikov))
27
+ - Improve APNs documentation. [\#553](https://github.com/rpush/rpush/pull/553) ([timdiggins](https://github.com/timdiggins))
28
+
29
+ ## [v5.1.0](https://github.com/rpush/rpush/tree/v5.1.0) (2020-09-25)
30
+
31
+ [Full Changelog](https://github.com/rpush/rpush/compare/v5.0.0...v5.1.0)
32
+
33
+ **Merged pull requests:**
34
+
35
+ - Resume APNS2 delivery when async requests timeout [\#564](https://github.com/rpush/rpush/pull/564) ([benlangfeld](https://github.com/benlangfeld))
36
+ - Improve DB reconnection for big tables [\#563](https://github.com/rpush/rpush/pull/563) ([AlexTatarnikov](https://github.com/AlexTatarnikov))
37
+ - Default the Rails environment to RAILS_ENV if set [\#562](https://github.com/rpush/rpush/pull/562) ([benlangfeld](https://github.com/benlangfeld))
38
+ - Allow Apns2 payloads to be up to 4096 bytes [\#561](https://github.com/rpush/rpush/pull/561) ([benlangfeld](https://github.com/benlangfeld))
39
+ - Improve test coverage [\#528](https://github.com/rpush/rpush/pull/528) ([jhottenstein](https://github.com/jhottenstein))
40
+
41
+ ## [v5.0.0](https://github.com/rpush/rpush/tree/v5.0.0) (2020-02-21)
42
+
43
+ [Full Changelog](https://github.com/rpush/rpush/compare/v4.2.0...v5.0.0)
44
+
45
+ **Merged pull requests:**
46
+
47
+ - Test with Ruby 2.7 [\#550](https://github.com/rpush/rpush/pull/550) ([aried3r](https://github.com/aried3r))
48
+ - Fix GCM priority when using Redis [\#549](https://github.com/rpush/rpush/pull/549) ([daniel-nelson](https://github.com/daniel-nelson))
49
+ - Drop support for Rails 4.2 [\#547](https://github.com/rpush/rpush/pull/547) ([aried3r](https://github.com/aried3r))
50
+
51
+ ## 4.2.0 (2019-12-13)
52
+
53
+ [Full Changelog](https://github.com/rpush/rpush/compare/v4.1.1...v4.2.0)
54
+
55
+ **Merged pull requests:**
56
+
57
+ - Fix Rails 6.1 related deprecation warnings [\#541](https://github.com/rpush/rpush/pull/541) ([dsantosmerino](https://github.com/dsantosmerino))
58
+ - GCM notification incorrectly mixes data into notification hashes [\#535](https://github.com/rpush/rpush/pull/535) ([mkon](https://github.com/mkon))
59
+ - handle priority in WNS [\#533](https://github.com/rpush/rpush/pull/533) ([Fivell](https://github.com/Fivell))
60
+ - Update development apns urls to match documentation [\#524](https://github.com/rpush/rpush/pull/524) ([jhottenstein](https://github.com/jhottenstein))
61
+ - Update README to remove incorrect info [\#523](https://github.com/rpush/rpush/pull/523) ([sharang-d](https://github.com/sharang-d))
62
+ - Fix and improve Travis setup [\#520](https://github.com/rpush/rpush/pull/520) ([aried3r](https://github.com/aried3r))
63
+ - Explicitly use Rails 6.0.0 [\#519](https://github.com/rpush/rpush/pull/519) ([jsantos](https://github.com/jsantos))
64
+ - Stale bot config change [\#515](https://github.com/rpush/rpush/pull/515) ([aried3r](https://github.com/aried3r))
65
+ - Add stale bot configuration. [\#514](https://github.com/rpush/rpush/pull/514) ([drn](https://github.com/drn))
66
+ - Correctly use feedback_enabled. [\#511](https://github.com/rpush/rpush/pull/511) ([kirbycool](https://github.com/kirbycool))
67
+ - Update apns_http2.rb [\#510](https://github.com/rpush/rpush/pull/510) ([mldoscar](https://github.com/mldoscar))
68
+ - Add `mutable_content` support for GCM [\#506](https://github.com/rpush/rpush/pull/506) ([hon3st](https://github.com/hon3st))
69
+ - Add support for critical alerts [\#502](https://github.com/rpush/rpush/pull/502) ([servn](https://github.com/servn))
70
+
3
71
  ## 4.1.1 (2019-05-13)
4
72
 
5
73
  ### Added
@@ -154,15 +222,15 @@ When upgrading, don't forget to run `bundle exec rpush init` to get all the late
154
222
 
155
223
  #### Fixes
156
224
 
157
- * Fixes migrations added in 3.0.1 ([#396](https://github.com/rpush/rpush/pull/396) by [@grosser](https://github.com/grosser))
158
- * Actually run these migrations in the test suite ([#399](https://github.com/rpush/rpush/pull/399) by [@aried3r](https://github.com/aried3r))
225
+ - Fixes migrations added in 3.0.1 ([#396](https://github.com/rpush/rpush/pull/396) by [@grosser](https://github.com/grosser))
226
+ - Actually run these migrations in the test suite ([#399](https://github.com/rpush/rpush/pull/399) by [@aried3r](https://github.com/aried3r))
159
227
 
160
228
  ## 3.0.1 (2017-11-30)
161
229
 
162
230
  #### Enhancements
163
231
 
164
- * Reduce booleans to true/false, do not allow nil ([#384](https://github.com/rpush/rpush/pull/384)) by [@grosser](https://github.com/grosser)
165
- * Better error message for error 8 in APNS ([#387](https://github.com/rpush/rpush/pull/387/files)) by [@grosser](https://github.com/grosser)
232
+ - Reduce booleans to true/false, do not allow nil ([#384](https://github.com/rpush/rpush/pull/384)) by [@grosser](https://github.com/grosser)
233
+ - Better error message for error 8 in APNS ([#387](https://github.com/rpush/rpush/pull/387/files)) by [@grosser](https://github.com/grosser)
166
234
 
167
235
  ## 3.0.0 (2017-09-15)
168
236
 
@@ -170,7 +238,7 @@ Same as 3.0.0.rc1 including:
170
238
 
171
239
  #### Features
172
240
 
173
- * Added support for latest modis version ([#378](https://github.com/rpush/rpush/pull/378)) by [@milgner](https://github.com/milgner)
241
+ - Added support for latest modis version ([#378](https://github.com/rpush/rpush/pull/378)) by [@milgner](https://github.com/milgner)
174
242
 
175
243
  ## 3.0.0.rc1 (2017-08-31)
176
244
 
@@ -178,233 +246,265 @@ When upgrading, don't forget to run `bundle exec rpush init` to get all the late
178
246
 
179
247
  #### Features
180
248
 
181
- * Added support for APNS `mutable-content` ([#296](https://github.com/rpush/rpush/pull/296) by [@tdtran](https://github.com/tdtran))
182
- * Added support for HTTP2 base APNS Api ([#315](https://github.com/rpush/rpush/pull/315) by [@soulfly](https://github.com/soulfly) and [@Nattfodd](https://github.com/Nattfodd))
249
+ - Added support for APNS `mutable-content` ([#296](https://github.com/rpush/rpush/pull/296) by [@tdtran](https://github.com/tdtran))
250
+ - Added support for HTTP2 base APNS Api ([#315](https://github.com/rpush/rpush/pull/315) by [@soulfly](https://github.com/soulfly) and [@Nattfodd](https://github.com/Nattfodd))
183
251
 
184
252
  #### Changes
185
253
 
186
- * **Breaking:** Dropped support for old Rubies and Rails versions. rpush 3.0 only supports Ruby versions 2.2.2 or higher and
254
+ - **Breaking:** Dropped support for old Rubies and Rails versions. rpush 3.0 only supports Ruby versions 2.2.2 or higher and
187
255
  Rails 4.2 or higher. ([#366](https://github.com/rpush/rpush/pull/366) by [@aried3r](https://github.com/aried3r))
188
- * **Breaking:** Dropped MongoDB support because there was no one maintaining it. But we're open to adding it back in. ([#366](https://github.com/rpush/rpush/pull/366) by [@aried3r](https://github.com/aried3r))
189
- * **Breaking:** Dropped JRuby support. ([#366](https://github.com/rpush/rpush/pull/366) by [@aried3r](https://github.com/aried3r))
256
+ - **Breaking:** Dropped MongoDB support because there was no one maintaining it. But we're open to adding it back in. ([#366](https://github.com/rpush/rpush/pull/366) by [@aried3r](https://github.com/aried3r))
257
+ - **Breaking:** Dropped JRuby support. ([#366](https://github.com/rpush/rpush/pull/366) by [@aried3r](https://github.com/aried3r))
190
258
 
191
- * Make synchronizer aware of GCM and WNS apps ([#254](https://github.com/rpush/rpush/pull/254) by [@wouterh](https://github.com/wouterh))
192
- * Precise after init commit msg ([#266](https://github.com/rpush/rpush/pull/266) by [@azranel](https://github.com/azranel))
193
- * Use new GCM endpoint ([#303](https://github.com/rpush/rpush/pull/303) by [@aried3r](https://github.com/aried3r))
194
- * Remove sound default value ([#320](https://github.com/rpush/rpush/pull/320) by [@amaierhofer](https://github.com/amaierhofer))
259
+ - Make synchronizer aware of GCM and WNS apps ([#254](https://github.com/rpush/rpush/pull/254) by [@wouterh](https://github.com/wouterh))
260
+ - Precise after init commit msg ([#266](https://github.com/rpush/rpush/pull/266) by [@azranel](https://github.com/azranel))
261
+ - Use new GCM endpoint ([#303](https://github.com/rpush/rpush/pull/303) by [@aried3r](https://github.com/aried3r))
262
+ - Remove sound default value ([#320](https://github.com/rpush/rpush/pull/320) by [@amaierhofer](https://github.com/amaierhofer))
195
263
 
196
264
  #### Bugfixes
197
265
 
198
- * ~~~Lock `net-http-persistent` dependency to `< 3`. See also [#306](https://github.com/rpush/rpush/issues/306) for more details. (by [@amaierhofer](https://github.com/amaierhofer))~~~
199
- * Fix `net-http-persistent` initializer to support version 2.x as well as 3.x. ([#309](https://github.com/rpush/rpush/pull/309) by [@amirmujkic](https://github.com/amirmujkic))
200
- * Fixed Rpush::ApnsFeedback being run on every application type when using Redis. ([#318](https://github.com/rpush/rpush/pull/318) by [@robertasg](https://github.com/robertasg))
266
+ - ~~~Lock `net-http-persistent` dependency to `< 3`. See also [#306](https://github.com/rpush/rpush/issues/306) for more details. (by [@amaierhofer](https://github.com/amaierhofer))~~~
267
+ - Fix `net-http-persistent` initializer to support version 2.x as well as 3.x. ([#309](https://github.com/rpush/rpush/pull/309) by [@amirmujkic](https://github.com/amirmujkic))
268
+ - Fixed Rpush::ApnsFeedback being run on every application type when using Redis. ([#318](https://github.com/rpush/rpush/pull/318) by [@robertasg](https://github.com/robertasg))
201
269
 
202
270
  ## 2.7.0 (February 9, 2016)
203
271
 
204
272
  #### Features
205
273
 
206
- * Added support for GCM priorities. ([#243](https://github.com/rpush/rpush/pull/243) by [@aried3r](https://github.com/aried3r))
207
- * Added support for GCM notification payload ([#246](https://github.com/rpush/rpush/pull/246) by [@aried3r](https://github.com/aried3r))
208
- * Added support for Windows Raw Notifications (in JSON form) ([#238](https://github.com/rpush/rpush/pull/238) by [@mseppae](https://github.com/mseppae))
209
- * Added WNS badge notifications ([#247](https://github.com/rpush/rpush/pull/247) by [@wouterh](https://github.com/wouterh))
210
- * Added the `launch` argument of WNS toast notifications ([#247](https://github.com/rpush/rpush/pull/247) by [@wouterh](https://github.com/wouterh))
211
- * Added sound in WNS toast notifications ([#247](https://github.com/rpush/rpush/pull/247) by [@wouterh](https://github.com/wouterh))
274
+ - Added support for GCM priorities. ([#243](https://github.com/rpush/rpush/pull/243) by [@aried3r](https://github.com/aried3r))
275
+ - Added support for GCM notification payload ([#246](https://github.com/rpush/rpush/pull/246) by [@aried3r](https://github.com/aried3r))
276
+ - Added support for Windows Raw Notifications (in JSON form) ([#238](https://github.com/rpush/rpush/pull/238) by [@mseppae](https://github.com/mseppae))
277
+ - Added WNS badge notifications ([#247](https://github.com/rpush/rpush/pull/247) by [@wouterh](https://github.com/wouterh))
278
+ - Added the `launch` argument of WNS toast notifications ([#247](https://github.com/rpush/rpush/pull/247) by [@wouterh](https://github.com/wouterh))
279
+ - Added sound in WNS toast notifications ([#247](https://github.com/rpush/rpush/pull/247) by [@wouterh](https://github.com/wouterh))
212
280
 
213
281
  #### Changes
214
282
 
215
- * Change `alert` type from `string` to `text` in ActiveRecord to allow bigger alert dictionaries. ([#248](https://github.com/rpush/rpush/pull/248) by [@schmidt](https://github.com/schmidt))
283
+ - Change `alert` type from `string` to `text` in ActiveRecord to allow bigger alert dictionaries. ([#248](https://github.com/rpush/rpush/pull/248) by [@schmidt](https://github.com/schmidt))
216
284
 
217
285
  #### Fixes
218
286
 
219
- * Fixed issue where setting the `mdm` parameter broke `to_binary` for MDM APNs ([#234](https://github.com/rpush/rpush/pull/234) by [@troya2](https://github.com/troya2))
220
- * Fixed `as_json` ([#231](https://github.com/rpush/rpush/issues/231) by [@aried3r](https://github.com/aried3r))
287
+ - Fixed issue where setting the `mdm` parameter broke `to_binary` for MDM APNs ([#234](https://github.com/rpush/rpush/pull/234) by [@troya2](https://github.com/troya2))
288
+ - Fixed `as_json` ([#231](https://github.com/rpush/rpush/issues/231) by [@aried3r](https://github.com/aried3r))
221
289
 
222
290
  ## 2.6.0 (January 25, 2016)
223
291
 
224
292
  #### Features
225
293
 
226
- * Added support for GCM for iOS' `content_available`. ([#221](https://github.com/rpush/rpush/pull/221))
294
+ - Added support for GCM for iOS' `content_available`. ([#221](https://github.com/rpush/rpush/pull/221))
227
295
 
228
296
  #### Fixes
229
297
 
230
- * Fix typo in Oracle support. ([#185](https://github.com/rpush/rpush/pull/185))
231
- * Remove `param` tag from WNS message. ([#190](https://github.com/rpush/rpush/pull/190))
232
- * Fixed WNS response headers parser. ([#192](https://github.com/rpush/rpush/pull/192))
233
- * GCM: fixed raise of unhandled errors. ([#193](https://github.com/rpush/rpush/pull/193))
234
- * Fix issue with custom PID file set in `Rpush.config`. ([#224](https://github.com/rpush/rpush/pull/224), [#225](https://github.com/rpush/rpush/pull/225))
298
+ - Fix typo in Oracle support. ([#185](https://github.com/rpush/rpush/pull/185))
299
+ - Remove `param` tag from WNS message. ([#190](https://github.com/rpush/rpush/pull/190))
300
+ - Fixed WNS response headers parser. ([#192](https://github.com/rpush/rpush/pull/192))
301
+ - GCM: fixed raise of unhandled errors. ([#193](https://github.com/rpush/rpush/pull/193))
302
+ - Fix issue with custom PID file set in `Rpush.config`. ([#224](https://github.com/rpush/rpush/pull/224), [#225](https://github.com/rpush/rpush/pull/225))
235
303
 
236
304
  ## 2.5.0 (July 19, 2015)
237
- Features:
238
- * Add 'rpush status' to inspect running Rpush internal status.
239
- * ActiveRecord logging is no longer redirected to rpush.log when embedded (#138).
240
- * Support for WNS (Windows RT) (#137).
241
- * Indexes added to some Mongoid fields (#151).
242
- * Added support for Oracle.
243
305
 
244
- Bug fixes:
245
- * Fix for handling APNs error when using `rpush push` or `Rpush.push`.
246
- * Fix backwards compatibility issue with ActiveRecord (#144).
306
+ Features:
307
+
308
+ - Add 'rpush status' to inspect running Rpush internal status.
309
+ - ActiveRecord logging is no longer redirected to rpush.log when embedded (#138).
310
+ - Support for WNS (Windows RT) (#137).
311
+ - Indexes added to some Mongoid fields (#151).
312
+ - Added support for Oracle.
313
+
314
+ Bug fixes:
315
+
316
+ - Fix for handling APNs error when using `rpush push` or `Rpush.push`.
317
+ - Fix backwards compatibility issue with ActiveRecord (#144).
247
318
 
248
319
  ## 2.4.0 (Feb 18, 2015)
249
- Features:
250
- * Support for MongoDB (using Mongoid).
251
- * config.feedback_poll is now deprecated, use config.apns.feedback_receiver.frequency instead.
252
- * Add config.apns.feedback_receiver.enabled to optionally enable the APNs feedback receiver (#129).
253
- * Passing configuration options directly to Rpush.embed and Rpush.push is now deprecated.
254
-
255
- Bug fixes:
256
- * Fix setting the log level when using Rails 4+ or without Rails (#124).
257
- * Fix the possibility for excessive error logging when using APNs (#128).
258
- * Re-use timestamp when replacing a migration with the same name (#91).
259
- * Ensure App/Notification type is updated during 2.0 upgrade migration (#102).
320
+
321
+ Features:
322
+
323
+ - Support for MongoDB (using Mongoid).
324
+ - config.feedback_poll is now deprecated, use config.apns.feedback_receiver.frequency instead.
325
+ - Add config.apns.feedback_receiver.enabled to optionally enable the APNs feedback receiver (#129).
326
+ - Passing configuration options directly to Rpush.embed and Rpush.push is now deprecated.
327
+
328
+ Bug fixes:
329
+
330
+ - Fix setting the log level when using Rails 4+ or without Rails (#124).
331
+ - Fix the possibility for excessive error logging when using APNs (#128).
332
+ - Re-use timestamp when replacing a migration with the same name (#91).
333
+ - Ensure App/Notification type is updated during 2.0 upgrade migration (#102).
260
334
 
261
335
  ## 2.3.2 (Jan 30, 2015)
262
- Bug fixes:
263
- * Internal sleep mechanism would sometimes no wait for the full duration specified.
264
- * Rpush.push nows delivers all pending notifications before returning.
265
- * Require thor >= 0.18.1 (#121).
336
+
337
+ Bug fixes:
338
+
339
+ - Internal sleep mechanism would sometimes no wait for the full duration specified.
340
+ - Rpush.push nows delivers all pending notifications before returning.
341
+ - Require thor >= 0.18.1 (#121).
266
342
 
267
343
  ## 2.3.1 (Jan 24, 2015)
268
- * Fix CPU thrashing while waiting for an APNs connection be established (#119).
344
+
345
+ - Fix CPU thrashing while waiting for an APNs connection be established (#119).
269
346
 
270
347
  ## 2.3.0 (Jan 19, 2015)
271
- * Add 'version' CLI command.
272
- * Rpush::Wpns::Notification now supports setting the 'data' attribute.
273
- * ActiveRecord is now directed to the configured Rpush logger (#104).
274
- * Logs are reopened when the HUP signal is received (#95).
275
- * Fix setting config.redis_options (#114).
276
- * Increase frequency of TCP keepalive probes on Linux.
277
- * APNs notifications are no longer marked as failed when a dropped connection is detected, as it's impossible to know exactly how many actually failed (if any).
278
- * Notifications are now retried instead of being marked as failed if a TCP/HTTP connection cannot be established.
348
+
349
+ - Add 'version' CLI command.
350
+ - Rpush::Wpns::Notification now supports setting the 'data' attribute.
351
+ - ActiveRecord is now directed to the configured Rpush logger (#104).
352
+ - Logs are reopened when the HUP signal is received (#95).
353
+ - Fix setting config.redis_options (#114).
354
+ - Increase frequency of TCP keepalive probes on Linux.
355
+ - APNs notifications are no longer marked as failed when a dropped connection is detected, as it's impossible to know exactly how many actually failed (if any).
356
+ - Notifications are now retried instead of being marked as failed if a TCP/HTTP connection cannot be established.
279
357
 
280
358
  ## 2.2.0 (Oct 7, 2014)
281
- * Numerous command-line fixes, sorry folks!
282
- * Add 'rpush push' command-line command for one-off use.
359
+
360
+ - Numerous command-line fixes, sorry folks!
361
+ - Add 'rpush push' command-line command for one-off use.
283
362
 
284
363
  ## 2.1.0 (Oct 4, 2014)
285
- * Bump APNs max payload size to 2048 for iOS 8.
286
- * Add 'category' for iOS 8.
287
- * Add url_args for Safari Push Notification Support (#77).
288
- * Improved command-line interface.
289
- * Rails integration is now optional.
290
- * Added log_level config option.
291
- * log_dir is now deprecated and has no effect, use log_file instead.
364
+
365
+ - Bump APNs max payload size to 2048 for iOS 8.
366
+ - Add 'category' for iOS 8.
367
+ - Add url_args for Safari Push Notification Support (#77).
368
+ - Improved command-line interface.
369
+ - Rails integration is now optional.
370
+ - Added log_level config option.
371
+ - log_dir is now deprecated and has no effect, use log_file instead.
292
372
 
293
373
  ## 2.0.1 (Sept 13, 2014)
294
- * Add ssl_certificate_revoked reflection (#68).
295
- * Fix for Postgis support in 2.0.0 migration (#70).
374
+
375
+ - Add ssl_certificate_revoked reflection (#68).
376
+ - Fix for Postgis support in 2.0.0 migration (#70).
296
377
 
297
378
  ## 2.0.0 (Sept 6, 2014)
298
- * Use APNs enhanced binary format version 2.
299
- * Support running multiple Rpush processes when using ActiveRecord and Redis.
300
- * APNs error detection is now performed asynchronously, 'check_for_errors' is therefore deprecated.
301
- * Deprecated attributes_for_device accessors. Use data instead.
302
- * Fix signal handling to work with Ruby 2.x. (#40).
303
- * You no longer need to signal HUP after creating a new app, they will be loaded automatically for you.
304
- * APNs notifications are now delivered in batches, greatly improving throughput.
305
- * Signaling HUP now also causes Rpush to immediately check for new notifications.
306
- * The 'wakeup' config option has been removed.
307
- * The 'batch_storage_updates' config option has been deprecated, storage backends will now always batch updates where appropriate.
308
- * The rpush process title updates with number of queued notifications and number of dispatchers.
309
- * Rpush::Apns::Feedback#app has been renamed to app_id and is now an Integer.
310
- * An app is restarted when the HUP signal is received if its certificate or environment attribute changed.
379
+
380
+ - Use APNs enhanced binary format version 2.
381
+ - Support running multiple Rpush processes when using ActiveRecord and Redis.
382
+ - APNs error detection is now performed asynchronously, 'check_for_errors' is therefore deprecated.
383
+ - Deprecated attributes_for_device accessors. Use data instead.
384
+ - Fix signal handling to work with Ruby 2.x. (#40).
385
+ - You no longer need to signal HUP after creating a new app, they will be loaded automatically for you.
386
+ - APNs notifications are now delivered in batches, greatly improving throughput.
387
+ - Signaling HUP now also causes Rpush to immediately check for new notifications.
388
+ - The 'wakeup' config option has been removed.
389
+ - The 'batch_storage_updates' config option has been deprecated, storage backends will now always batch updates where appropriate.
390
+ - The rpush process title updates with number of queued notifications and number of dispatchers.
391
+ - Rpush::Apns::Feedback#app has been renamed to app_id and is now an Integer.
392
+ - An app is restarted when the HUP signal is received if its certificate or environment attribute changed.
311
393
 
312
394
  ## 1.0.0 (Feb 9, 2014)
313
- * Renamed to Rpush (from Rapns). Version number reset to 1.0.0.
314
- * Reduce default batch size to 100.
315
- * Fix sqlite3 support (#160).
316
- * Drop support for Ruby 1.8.
317
- * Improve APNs certificate validation errors (#192) @mattconnolly).
318
- * Support for Windows Phone notifications (#191) (@matiaslina).
319
- * Support for Amazon device messaging (#173) (@darrylyip).
320
- * Add two new GCM reflections: gcm_delivered_to_recipient, gcm_failed_to_recipient (#184) (@jakeonfire).
321
- * Fix migration issues (#181) (@jcoleman).
322
- * Add GCM gcm_invalid_registration_id reflection (#171) (@marcrohloff).
323
- * Feature: wakeup feeder via UDP socket (#164) (@mattconnolly).
324
- * Fix reflections when using batches (#161).
325
- * Only perform APNs certificate validation for APNs apps (#133).
326
- * The deprecated on_apns_feedback has now been removed.
327
- * The deprecated airbrake_notify config option has been removed.
328
- * Removed the deprecated ability to set attributes_for_device using mass-assignment.
329
- * Fixed issue where database connections may not be released from the connection pool.
395
+
396
+ - Renamed to Rpush (from Rapns). Version number reset to 1.0.0.
397
+ - Reduce default batch size to 100.
398
+ - Fix sqlite3 support (#160).
399
+ - Drop support for Ruby 1.8.
400
+ - Improve APNs certificate validation errors (#192) @mattconnolly).
401
+ - Support for Windows Phone notifications (#191) (@matiaslina).
402
+ - Support for Amazon device messaging (#173) (@darrylyip).
403
+ - Add two new GCM reflections: gcm_delivered_to_recipient, gcm_failed_to_recipient (#184) (@jakeonfire).
404
+ - Fix migration issues (#181) (@jcoleman).
405
+ - Add GCM gcm_invalid_registration_id reflection (#171) (@marcrohloff).
406
+ - Feature: wakeup feeder via UDP socket (#164) (@mattconnolly).
407
+ - Fix reflections when using batches (#161).
408
+ - Only perform APNs certificate validation for APNs apps (#133).
409
+ - The deprecated on_apns_feedback has now been removed.
410
+ - The deprecated airbrake_notify config option has been removed.
411
+ - Removed the deprecated ability to set attributes_for_device using mass-assignment.
412
+ - Fixed issue where database connections may not be released from the connection pool.
330
413
 
331
414
  ## 3.4.1 (Aug 30, 2013)
332
- * Silence unintended airbrake_notify deprecation warning (#158).
333
- * Add :dependent => :destroy to app notifications (#156).
415
+
416
+ - Silence unintended airbrake_notify deprecation warning (#158).
417
+ - Add :dependent => :destroy to app notifications (#156).
334
418
 
335
419
  ## 3.4.0 (Aug 28, 2013)
336
- * Rails 4 support.
337
- * Add apns_certificate_will_expire reflection.
338
- * Perform storage update in batches where possible, to increase throughput.
339
- * airbrake_notify is now deprecated, use the Reflection API instead.
340
- * Fix calling the notification_delivered reflection twice (#149).
420
+
421
+ - Rails 4 support.
422
+ - Add apns_certificate_will_expire reflection.
423
+ - Perform storage update in batches where possible, to increase throughput.
424
+ - airbrake_notify is now deprecated, use the Reflection API instead.
425
+ - Fix calling the notification_delivered reflection twice (#149).
341
426
 
342
427
  ## 3.3.2 (June 30, 2013)
343
- * Fix Rails 3.0.x compatibility (#138) (@yoppi).
344
- * Ensure Rails does not set a default value for text columns (#137).
345
- * Fix error in down action for add_gcm migration (#135) (@alexperto).
428
+
429
+ - Fix Rails 3.0.x compatibility (#138) (@yoppi).
430
+ - Ensure Rails does not set a default value for text columns (#137).
431
+ - Fix error in down action for add_gcm migration (#135) (@alexperto).
346
432
 
347
433
  ## 3.3.1 (June 2, 2013)
348
- * Fix compatibility with postgres_ext (#104).
349
- * Add ability to switch the logger (@maxsz).
350
- * Do not validate presence of alert, badge or sound - not actually required by the APNs (#129) (@wilg).
351
- * Catch IOError from an APNs connection. (@maxsz).
352
- * Allow nested hashes in APNs notification attributes (@perezda).
434
+
435
+ - Fix compatibility with postgres_ext (#104).
436
+ - Add ability to switch the logger (@maxsz).
437
+ - Do not validate presence of alert, badge or sound - not actually required by the APNs (#129) (@wilg).
438
+ - Catch IOError from an APNs connection. (@maxsz).
439
+ - Allow nested hashes in APNs notification attributes (@perezda).
353
440
 
354
441
  ## 3.3.0 (April 21, 2013)
355
- * GCM: collapse_key is no longer required to set expiry (time_to_live).
356
- * Add reflection for GCM canonical IDs.
357
- * Add Rpush::Daemon.store to decouple storage backend.
442
+
443
+ - GCM: collapse_key is no longer required to set expiry (time_to_live).
444
+ - Add reflection for GCM canonical IDs.
445
+ - Add Rpush::Daemon.store to decouple storage backend.
358
446
 
359
447
  ## 3.2.0 (Apr 1, 2013)
360
- * Rpush.apns_feedback for one time feedback retrieval. Rpush.push no longer checks for feedback (#117, #105).
361
- * Lazily connect to the APNs only when a notification is to be delivered (#111).
362
- * Ensure all notifications are sent when using Rpush.push (#107).
363
- * Fix issue with running Rpush.push more than once in the same process (#106).
448
+
449
+ - Rpush.apns_feedback for one time feedback retrieval. Rpush.push no longer checks for feedback (#117, #105).
450
+ - Lazily connect to the APNs only when a notification is to be delivered (#111).
451
+ - Ensure all notifications are sent when using Rpush.push (#107).
452
+ - Fix issue with running Rpush.push more than once in the same process (#106).
364
453
 
365
454
  ## 3.1.0 (Jan 26, 2013)
366
- * Rpush.reflect API for fine-grained introspection.
367
- * Rpush.embed API for embedding Rpush into an existing process.
368
- * Rpush.push API for using Rpush in scheduled jobs.
369
- * Fix issue with integration with ActiveScaffold (#98) (@jeffarena).
370
- * Fix content-available setter for APNs (#95) (@dup2).
371
- * GCM validation fixes (#96) (@DianthuDia).
455
+
456
+ - Rpush.reflect API for fine-grained introspection.
457
+ - Rpush.embed API for embedding Rpush into an existing process.
458
+ - Rpush.push API for using Rpush in scheduled jobs.
459
+ - Fix issue with integration with ActiveScaffold (#98) (@jeffarena).
460
+ - Fix content-available setter for APNs (#95) (@dup2).
461
+ - GCM validation fixes (#96) (@DianthuDia).
372
462
 
373
463
  ## 3.0.1 (Dec 16, 2012)
374
- * Fix compatibility with Rails 3.0.x. Fixes #89.
464
+
465
+ - Fix compatibility with Rails 3.0.x. Fixes #89.
375
466
 
376
467
  ## 3.0.0 (Dec 15, 2012)
377
- * Add support for Google Cloud Messaging.
378
- * Fix Heroku logging issue.
379
468
 
380
- ## 2.0.5 (Nov 4, 2012) ##
381
- * Support content-available (#68).
382
- * Append to log files.
383
- * Fire a callback when Feedback is received.
469
+ - Add support for Google Cloud Messaging.
470
+ - Fix Heroku logging issue.
471
+
472
+ ## 2.0.5 (Nov 4, 2012)
473
+
474
+ - Support content-available (#68).
475
+ - Append to log files.
476
+ - Fire a callback when Feedback is received.
477
+
478
+ ## 2.0.5.rc1 (Oct 5, 2012)
479
+
480
+ - Release db connections back into the pool after use (#72).
481
+ - Continue to start daemon if a connection cannot be made during startup (#62) (@mattconnolly).
482
+
483
+ ## 2.0.4 (Aug 6, 2012)
484
+
485
+ - Don't exit when there aren't any Rpush::App instances, just warn (#55).
486
+
487
+ ## 2.0.3 (July 26, 2012)
488
+
489
+ - JRuby support.
490
+ - Explicitly list all attributes instead of calling column_names (#53).
384
491
 
385
- ## 2.0.5.rc1 (Oct 5, 2012) ##
386
- * Release db connections back into the pool after use (#72).
387
- * Continue to start daemon if a connection cannot be made during startup (#62) (@mattconnolly).
492
+ ## 2.0.2 (July 25, 2012)
388
493
 
389
- ## 2.0.4 (Aug 6, 2012) ##
390
- * Don't exit when there aren't any Rpush::App instances, just warn (#55).
494
+ - Support MultiJson < 1.3.0.
495
+ - Make all model attributes accessible.
391
496
 
392
- ## 2.0.3 (July 26, 2012) ##
393
- * JRuby support.
394
- * Explicitly list all attributes instead of calling column_names (#53).
497
+ ## 2.0.1 (July 7, 2012)
395
498
 
396
- ## 2.0.2 (July 25, 2012) ##
397
- * Support MultiJson < 1.3.0.
398
- * Make all model attributes accessible.
499
+ - Fix delivery when using Ruby 1.8.
500
+ - MultiJson support.
399
501
 
400
- ## 2.0.1 (July 7, 2012) ##
401
- * Fix delivery when using Ruby 1.8.
402
- * MultiJson support.
502
+ ## 2.0.0 (June 19, 2012)
403
503
 
404
- ## 2.0.0 (June 19, 2012) ##
504
+ - Support for multiple apps.
505
+ - Hot Updates - add/remove apps without restart.
506
+ - MDM support.
507
+ - Removed rpush.yml in favour of command line options.
508
+ - Started the changelog!
405
509
 
406
- * Support for multiple apps.
407
- * Hot Updates - add/remove apps without restart.
408
- * MDM support.
409
- * Removed rpush.yml in favour of command line options.
410
- * Started the changelog!
510
+ \* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*