rpush 4.2.0 → 5.4.0

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