rpush_extended 3.2.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (248) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +365 -0
  3. data/LICENSE +7 -0
  4. data/README.md +393 -0
  5. data/bin/rpush +4 -0
  6. data/lib/generators/rpush_config_generator.rb +7 -0
  7. data/lib/generators/rpush_migration_generator.rb +66 -0
  8. data/lib/generators/templates/add_adm.rb +23 -0
  9. data/lib/generators/templates/add_alert_is_json_to_rapns_notifications.rb +9 -0
  10. data/lib/generators/templates/add_app_to_rapns.rb +11 -0
  11. data/lib/generators/templates/add_fail_after_to_rpush_notifications.rb +9 -0
  12. data/lib/generators/templates/add_gcm.rb +117 -0
  13. data/lib/generators/templates/add_rpush.rb +402 -0
  14. data/lib/generators/templates/add_wpns.rb +16 -0
  15. data/lib/generators/templates/create_rapns_apps.rb +16 -0
  16. data/lib/generators/templates/create_rapns_feedback.rb +25 -0
  17. data/lib/generators/templates/create_rapns_notifications.rb +36 -0
  18. data/lib/generators/templates/rename_rapns_to_rpush.rb +87 -0
  19. data/lib/generators/templates/rpush.rb +135 -0
  20. data/lib/generators/templates/rpush_2_0_0_updates.rb +79 -0
  21. data/lib/generators/templates/rpush_2_1_0_updates.rb +11 -0
  22. data/lib/generators/templates/rpush_2_6_0_updates.rb +10 -0
  23. data/lib/generators/templates/rpush_2_7_0_updates.rb +12 -0
  24. data/lib/generators/templates/rpush_3_0_0_updates.rb +11 -0
  25. data/lib/generators/templates/rpush_3_0_1_updates.rb +13 -0
  26. data/lib/generators/templates/rpush_3_1_0_add_pushy.rb +9 -0
  27. data/lib/generators/templates/rpush_3_1_1_updates.rb +15 -0
  28. data/lib/generators/templates/rpush_3_2_0_add_apns_p8.rb +15 -0
  29. data/lib/generators/templates/rpush_3_2_4_updates.rb +9 -0
  30. data/lib/generators/templates/rpush_3_3_0_updates.rb +9 -0
  31. data/lib/generators/templates/rpush_3_3_1_updates.rb +11 -0
  32. data/lib/rpush/apns_feedback.rb +17 -0
  33. data/lib/rpush/cli.rb +213 -0
  34. data/lib/rpush/client/active_model/adm/app.rb +23 -0
  35. data/lib/rpush/client/active_model/adm/data_validator.rb +14 -0
  36. data/lib/rpush/client/active_model/adm/notification.rb +28 -0
  37. data/lib/rpush/client/active_model/apns/app.rb +37 -0
  38. data/lib/rpush/client/active_model/apns/binary_notification_validator.rb +16 -0
  39. data/lib/rpush/client/active_model/apns/device_token_format_validator.rb +14 -0
  40. data/lib/rpush/client/active_model/apns/notification.rb +104 -0
  41. data/lib/rpush/client/active_model/apns2/app.rb +15 -0
  42. data/lib/rpush/client/active_model/apns2/notification.rb +9 -0
  43. data/lib/rpush/client/active_model/apnsp8/app.rb +23 -0
  44. data/lib/rpush/client/active_model/apnsp8/notification.rb +9 -0
  45. data/lib/rpush/client/active_model/gcm/app.rb +19 -0
  46. data/lib/rpush/client/active_model/gcm/expiry_collapse_key_mutual_inclusion_validator.rb +14 -0
  47. data/lib/rpush/client/active_model/gcm/notification.rb +59 -0
  48. data/lib/rpush/client/active_model/notification.rb +22 -0
  49. data/lib/rpush/client/active_model/payload_data_size_validator.rb +13 -0
  50. data/lib/rpush/client/active_model/pushy/app.rb +20 -0
  51. data/lib/rpush/client/active_model/pushy/notification.rb +31 -0
  52. data/lib/rpush/client/active_model/pushy/time_to_live_validator.rb +14 -0
  53. data/lib/rpush/client/active_model/registration_ids_count_validator.rb +13 -0
  54. data/lib/rpush/client/active_model/wns/app.rb +23 -0
  55. data/lib/rpush/client/active_model/wns/notification.rb +32 -0
  56. data/lib/rpush/client/active_model/wpns/app.rb +13 -0
  57. data/lib/rpush/client/active_model/wpns/notification.rb +28 -0
  58. data/lib/rpush/client/active_model.rb +34 -0
  59. data/lib/rpush/client/active_record/adm/app.rb +11 -0
  60. data/lib/rpush/client/active_record/adm/notification.rb +11 -0
  61. data/lib/rpush/client/active_record/apns/app.rb +11 -0
  62. data/lib/rpush/client/active_record/apns/feedback.rb +18 -0
  63. data/lib/rpush/client/active_record/apns/notification.rb +40 -0
  64. data/lib/rpush/client/active_record/apns2/app.rb +11 -0
  65. data/lib/rpush/client/active_record/apns2/notification.rb +10 -0
  66. data/lib/rpush/client/active_record/apnsp8/app.rb +11 -0
  67. data/lib/rpush/client/active_record/apnsp8/notification.rb +10 -0
  68. data/lib/rpush/client/active_record/app.rb +13 -0
  69. data/lib/rpush/client/active_record/gcm/app.rb +11 -0
  70. data/lib/rpush/client/active_record/gcm/notification.rb +11 -0
  71. data/lib/rpush/client/active_record/notification.rb +42 -0
  72. data/lib/rpush/client/active_record/pushy/app.rb +11 -0
  73. data/lib/rpush/client/active_record/pushy/notification.rb +11 -0
  74. data/lib/rpush/client/active_record/wns/app.rb +11 -0
  75. data/lib/rpush/client/active_record/wns/badge_notification.rb +15 -0
  76. data/lib/rpush/client/active_record/wns/notification.rb +11 -0
  77. data/lib/rpush/client/active_record/wns/raw_notification.rb +13 -0
  78. data/lib/rpush/client/active_record/wpns/app.rb +11 -0
  79. data/lib/rpush/client/active_record/wpns/notification.rb +11 -0
  80. data/lib/rpush/client/active_record.rb +33 -0
  81. data/lib/rpush/client/redis/adm/app.rb +14 -0
  82. data/lib/rpush/client/redis/adm/notification.rb +11 -0
  83. data/lib/rpush/client/redis/apns/app.rb +11 -0
  84. data/lib/rpush/client/redis/apns/feedback.rb +20 -0
  85. data/lib/rpush/client/redis/apns/notification.rb +11 -0
  86. data/lib/rpush/client/redis/apns2/app.rb +11 -0
  87. data/lib/rpush/client/redis/apns2/notification.rb +11 -0
  88. data/lib/rpush/client/redis/apnsp8/app.rb +11 -0
  89. data/lib/rpush/client/redis/apnsp8/notification.rb +11 -0
  90. data/lib/rpush/client/redis/app.rb +29 -0
  91. data/lib/rpush/client/redis/gcm/app.rb +11 -0
  92. data/lib/rpush/client/redis/gcm/notification.rb +11 -0
  93. data/lib/rpush/client/redis/notification.rb +74 -0
  94. data/lib/rpush/client/redis/pushy/app.rb +16 -0
  95. data/lib/rpush/client/redis/pushy/notification.rb +18 -0
  96. data/lib/rpush/client/redis/wns/app.rb +14 -0
  97. data/lib/rpush/client/redis/wns/badge_notification.rb +15 -0
  98. data/lib/rpush/client/redis/wns/notification.rb +11 -0
  99. data/lib/rpush/client/redis/wns/raw_notification.rb +11 -0
  100. data/lib/rpush/client/redis/wpns/app.rb +11 -0
  101. data/lib/rpush/client/redis/wpns/notification.rb +11 -0
  102. data/lib/rpush/client/redis.rb +56 -0
  103. data/lib/rpush/configuration.rb +115 -0
  104. data/lib/rpush/daemon/adm/delivery.rb +226 -0
  105. data/lib/rpush/daemon/adm.rb +9 -0
  106. data/lib/rpush/daemon/apns/delivery.rb +43 -0
  107. data/lib/rpush/daemon/apns/feedback_receiver.rb +90 -0
  108. data/lib/rpush/daemon/apns.rb +17 -0
  109. data/lib/rpush/daemon/apns2/delivery.rb +127 -0
  110. data/lib/rpush/daemon/apns2.rb +10 -0
  111. data/lib/rpush/daemon/apnsp8/delivery.rb +166 -0
  112. data/lib/rpush/daemon/apnsp8/token.rb +43 -0
  113. data/lib/rpush/daemon/apnsp8.rb +10 -0
  114. data/lib/rpush/daemon/app_runner.rb +190 -0
  115. data/lib/rpush/daemon/batch.rb +138 -0
  116. data/lib/rpush/daemon/constants.rb +59 -0
  117. data/lib/rpush/daemon/delivery.rb +46 -0
  118. data/lib/rpush/daemon/delivery_error.rb +27 -0
  119. data/lib/rpush/daemon/dispatcher/apns_http2.rb +51 -0
  120. data/lib/rpush/daemon/dispatcher/apns_tcp.rb +152 -0
  121. data/lib/rpush/daemon/dispatcher/apnsp8_http2.rb +33 -0
  122. data/lib/rpush/daemon/dispatcher/http.rb +21 -0
  123. data/lib/rpush/daemon/dispatcher/tcp.rb +22 -0
  124. data/lib/rpush/daemon/dispatcher_loop.rb +73 -0
  125. data/lib/rpush/daemon/errors.rb +18 -0
  126. data/lib/rpush/daemon/feeder.rb +69 -0
  127. data/lib/rpush/daemon/gcm/delivery.rb +241 -0
  128. data/lib/rpush/daemon/gcm.rb +9 -0
  129. data/lib/rpush/daemon/interruptible_sleep.rb +24 -0
  130. data/lib/rpush/daemon/loggable.rb +33 -0
  131. data/lib/rpush/daemon/proc_title.rb +17 -0
  132. data/lib/rpush/daemon/pushy/delivery.rb +90 -0
  133. data/lib/rpush/daemon/pushy.rb +9 -0
  134. data/lib/rpush/daemon/queue_payload.rb +12 -0
  135. data/lib/rpush/daemon/retry_header_parser.rb +23 -0
  136. data/lib/rpush/daemon/retryable_error.rb +22 -0
  137. data/lib/rpush/daemon/ring_buffer.rb +16 -0
  138. data/lib/rpush/daemon/rpc/client.rb +27 -0
  139. data/lib/rpush/daemon/rpc/server.rb +82 -0
  140. data/lib/rpush/daemon/rpc.rb +9 -0
  141. data/lib/rpush/daemon/service_config_methods.rb +51 -0
  142. data/lib/rpush/daemon/signal_handler.rb +75 -0
  143. data/lib/rpush/daemon/store/active_record/reconnectable.rb +80 -0
  144. data/lib/rpush/daemon/store/active_record.rb +214 -0
  145. data/lib/rpush/daemon/store/interface.rb +20 -0
  146. data/lib/rpush/daemon/store/redis.rb +166 -0
  147. data/lib/rpush/daemon/string_helpers.rb +15 -0
  148. data/lib/rpush/daemon/synchronizer.rb +62 -0
  149. data/lib/rpush/daemon/tcp_connection.rb +190 -0
  150. data/lib/rpush/daemon/wns/badge_request.rb +32 -0
  151. data/lib/rpush/daemon/wns/delivery.rb +178 -0
  152. data/lib/rpush/daemon/wns/post_request.rb +33 -0
  153. data/lib/rpush/daemon/wns/raw_request.rb +22 -0
  154. data/lib/rpush/daemon/wns/toast_request.rb +54 -0
  155. data/lib/rpush/daemon/wns.rb +9 -0
  156. data/lib/rpush/daemon/wpns/delivery.rb +132 -0
  157. data/lib/rpush/daemon/wpns.rb +9 -0
  158. data/lib/rpush/daemon.rb +179 -0
  159. data/lib/rpush/deprecatable.rb +24 -0
  160. data/lib/rpush/deprecation.rb +26 -0
  161. data/lib/rpush/embed.rb +41 -0
  162. data/lib/rpush/logger.rb +92 -0
  163. data/lib/rpush/multi_json_helper.rb +16 -0
  164. data/lib/rpush/plugin.rb +44 -0
  165. data/lib/rpush/push.rb +11 -0
  166. data/lib/rpush/reflectable.rb +13 -0
  167. data/lib/rpush/reflection_collection.rb +44 -0
  168. data/lib/rpush/reflection_public_methods.rb +11 -0
  169. data/lib/rpush/version.rb +14 -0
  170. data/lib/rpush.rb +43 -0
  171. data/lib/tasks/quality.rake +35 -0
  172. data/lib/tasks/test.rake +69 -0
  173. data/spec/.rubocop.yml +4 -0
  174. data/spec/functional/adm_spec.rb +50 -0
  175. data/spec/functional/apns2_spec.rb +232 -0
  176. data/spec/functional/apns_spec.rb +162 -0
  177. data/spec/functional/cli_spec.rb +36 -0
  178. data/spec/functional/embed_spec.rb +49 -0
  179. data/spec/functional/gcm_spec.rb +46 -0
  180. data/spec/functional/new_app_spec.rb +44 -0
  181. data/spec/functional/pushy_spec.rb +22 -0
  182. data/spec/functional/retry_spec.rb +42 -0
  183. data/spec/functional/synchronization_spec.rb +97 -0
  184. data/spec/functional/wpns_spec.rb +71 -0
  185. data/spec/functional_spec_helper.rb +32 -0
  186. data/spec/spec_helper.rb +69 -0
  187. data/spec/support/active_record_setup.rb +73 -0
  188. data/spec/support/cert_with_password.pem +90 -0
  189. data/spec/support/cert_without_password.pem +59 -0
  190. data/spec/support/config/database.yml +44 -0
  191. data/spec/support/simplecov_helper.rb +24 -0
  192. data/spec/support/simplecov_quality_formatter.rb +12 -0
  193. data/spec/tmp/.gitkeep +0 -0
  194. data/spec/unit/apns_feedback_spec.rb +28 -0
  195. data/spec/unit/client/active_record/adm/app_spec.rb +58 -0
  196. data/spec/unit/client/active_record/adm/notification_spec.rb +43 -0
  197. data/spec/unit/client/active_record/apns/app_spec.rb +29 -0
  198. data/spec/unit/client/active_record/apns/feedback_spec.rb +9 -0
  199. data/spec/unit/client/active_record/apns/notification_spec.rb +324 -0
  200. data/spec/unit/client/active_record/app_spec.rb +30 -0
  201. data/spec/unit/client/active_record/gcm/app_spec.rb +4 -0
  202. data/spec/unit/client/active_record/gcm/notification_spec.rb +67 -0
  203. data/spec/unit/client/active_record/notification_spec.rb +21 -0
  204. data/spec/unit/client/active_record/pushy/app_spec.rb +17 -0
  205. data/spec/unit/client/active_record/pushy/notification_spec.rb +65 -0
  206. data/spec/unit/client/active_record/wns/badge_notification_spec.rb +15 -0
  207. data/spec/unit/client/active_record/wns/raw_notification_spec.rb +26 -0
  208. data/spec/unit/client/active_record/wpns/app_spec.rb +4 -0
  209. data/spec/unit/client/active_record/wpns/notification_spec.rb +21 -0
  210. data/spec/unit/configuration_spec.rb +46 -0
  211. data/spec/unit/daemon/adm/delivery_spec.rb +253 -0
  212. data/spec/unit/daemon/apns/certificate_expired_error_spec.rb +11 -0
  213. data/spec/unit/daemon/apns/delivery_spec.rb +108 -0
  214. data/spec/unit/daemon/apns/feedback_receiver_spec.rb +119 -0
  215. data/spec/unit/daemon/app_runner_spec.rb +188 -0
  216. data/spec/unit/daemon/batch_spec.rb +169 -0
  217. data/spec/unit/daemon/delivery_error_spec.rb +13 -0
  218. data/spec/unit/daemon/delivery_spec.rb +51 -0
  219. data/spec/unit/daemon/dispatcher/http_spec.rb +34 -0
  220. data/spec/unit/daemon/dispatcher/tcp_spec.rb +32 -0
  221. data/spec/unit/daemon/dispatcher_loop_spec.rb +53 -0
  222. data/spec/unit/daemon/feeder_spec.rb +96 -0
  223. data/spec/unit/daemon/gcm/delivery_spec.rb +387 -0
  224. data/spec/unit/daemon/proc_title_spec.rb +11 -0
  225. data/spec/unit/daemon/pushy/delivery_spec.rb +159 -0
  226. data/spec/unit/daemon/retryable_error_spec.rb +14 -0
  227. data/spec/unit/daemon/service_config_methods_spec.rb +36 -0
  228. data/spec/unit/daemon/signal_handler_spec.rb +99 -0
  229. data/spec/unit/daemon/store/active_record/reconnectable_spec.rb +165 -0
  230. data/spec/unit/daemon/store/active_record_spec.rb +357 -0
  231. data/spec/unit/daemon/store/redis_spec.rb +365 -0
  232. data/spec/unit/daemon/tcp_connection_spec.rb +292 -0
  233. data/spec/unit/daemon/wns/delivery_spec.rb +176 -0
  234. data/spec/unit/daemon/wns/post_request_spec.rb +117 -0
  235. data/spec/unit/daemon/wpns/delivery_spec.rb +167 -0
  236. data/spec/unit/daemon_spec.rb +138 -0
  237. data/spec/unit/deprecatable_spec.rb +32 -0
  238. data/spec/unit/deprecation_spec.rb +15 -0
  239. data/spec/unit/embed_spec.rb +47 -0
  240. data/spec/unit/logger_spec.rb +127 -0
  241. data/spec/unit/notification_shared.rb +53 -0
  242. data/spec/unit/plugin_spec.rb +36 -0
  243. data/spec/unit/push_spec.rb +34 -0
  244. data/spec/unit/reflectable_spec.rb +27 -0
  245. data/spec/unit/reflection_collection_spec.rb +26 -0
  246. data/spec/unit/rpush_spec.rb +8 -0
  247. data/spec/unit_spec_helper.rb +26 -0
  248. metadata +709 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d76671b4b1ec2174ff0dce360c8f6e683b73e350
4
+ data.tar.gz: 02a7c88f59165eac3563459f218dc5f66955b75a
5
+ SHA512:
6
+ metadata.gz: 9cb2149e895a5bb1a5193f6e92776448b2a8cebf3b310171a5a7263a98353a873dfdf718a93378b6c62279f409171a32344fcfc9b8ab16d9a7fe5cd03a7ee84a
7
+ data.tar.gz: a159d490964206e1a98f31832349f9068fb8b08d8699a8b4a80eab2718eb140222fc011637b26df33680b8e3d812319b18102326ebbf1fbca02e1ff91fb4b215
data/CHANGELOG.md ADDED
@@ -0,0 +1,365 @@
1
+ ## HEAD
2
+
3
+ ### Breaking Changes
4
+
5
+ - None
6
+
7
+ ### Added
8
+
9
+ - None
10
+
11
+ ### Fixed
12
+
13
+ - None
14
+
15
+ ## 3.2.4 (2018-10-25)
16
+
17
+ When upgrading, don't forget to run `bundle exec rpush init` to get all the latest migrations.
18
+
19
+ ### Changes
20
+
21
+ - Relaxed JWT dependency version [#447](https://github.com/rpush/rpush/pull/447) (by [@sposin](https://github.com/sposin)).
22
+
23
+ ### Docs
24
+
25
+ - Better documentation for running tests when developing Rpush [#458](https://github.com/rpush/rpush/pull/458) (by [@jsantos](https://github.com/jsantos)).
26
+
27
+ ### Fixed
28
+
29
+ - Change `apn_key` column type from string to text [#455](https://github.com/rpush/rpush/pull/455) (by [sonxurxo](https://github.com/sonxurxo)).
30
+ - Retry all GCM 5xx errors [#456](https://github.com/rpush/rpush/pull/456) (by [@rofreg](https://github.com/rofreg)).
31
+
32
+ ## 3.2.3 (2018-07-12)
33
+
34
+ ### Changes
35
+
36
+ - Update jwt dependency from 1.x to 2.x [#444](https://github.com/rpush/rpush/pull/444) (by [@jsantos](https://github.com/jsantos)).
37
+
38
+ ## 3.2.2 (2018-07-10)
39
+
40
+ ### Fixed
41
+
42
+ - Migrations now work with Rails 5.2 and ActiveRecord. Redis support for Rails 5.2 is not yet working if you're using Modis, see [this issue](https://github.com/ileitch/modis/issues/13).
43
+
44
+ ## 3.2.1 (2018-07-10)
45
+
46
+ ### Fixed
47
+
48
+ - A memory leak in the Rpush daemon which caused it to consume more and more memory was fixed. [#441](https://github.com/rpush/rpush/pull/441) (by [@armahmoudi](https://github.com/armahmoudi))
49
+
50
+ ## 3.2.0 (2018-06-13)
51
+
52
+ When upgrading, don't forget to run `bundle exec rpush init` to get all the latest migrations.
53
+
54
+ ### Breaking Changes
55
+
56
+ - None
57
+
58
+ ### Added
59
+
60
+ - Added support for P8 certificate Apple push notifications [#386](https://github.com/rpush/rpush/pull/386) (by [@mariannegru](https://github.com/mariannegru))
61
+
62
+ ## 3.1.1 (2018-04-16)
63
+
64
+ When upgrading, don't forget to run `bundle exec rpush init` to get all the latest migrations.
65
+
66
+ ### Breaking Changes
67
+
68
+ - None
69
+
70
+ ### Added
71
+
72
+ - None
73
+
74
+ ### Fixed
75
+
76
+ - Database deadlock [#200](https://github.com/rpush/rpush/issues/200) (by [@loadhigh](https://github.com/loadhigh) in [#428](https://github.com/rpush/rpush/issues/428))
77
+
78
+ ### Enhancements
79
+
80
+ - Change the index on `rpush_notifications` to minimize number of locked records and pre-sort the records ([#428](https://github.com/rpush/rpush/issues/428) by [@loadhigh](https://github.com/loadhigh))
81
+ - Minimize the locking duration by moving the row dump code outside of the transaction ([#428](https://github.com/rpush/rpush/issues/428) by [@loadhigh](https://github.com/loadhigh))
82
+
83
+ ## 3.1.0 (2018-04-11)
84
+
85
+ When upgrading, don't forget to run `bundle exec rpush init` to get all the latest migrations.
86
+
87
+ ### Breaking Changes
88
+
89
+ - None
90
+
91
+ ### Added
92
+
93
+ - Added sandbox URL to `ApnsHttp2` dispatcher ([#392](https://github.com/rpush/rpush/pull/392) by [@brianlittmann](https://github.com/brianlittmann))
94
+
95
+ ### Features
96
+
97
+ - Added support for [Pushy](https://pushy.me/) ([#404](https://github.com/rpush/rpush/pull/404) by [@zabolotnov87](https://github.com/zabolotnov87))
98
+
99
+ ### Fixed
100
+
101
+ - `@notification.app` triggers loading of association :app ([#410](https://github.com/rpush/rpush/issues/410) by [@loadhigh](https://github.com/loadhigh))
102
+ - APNS expiry should be number of seconds since epoch ([#416](https://github.com/rpush/rpush/issues/416) by [@loadhigh](https://github.com/loadhigh))
103
+
104
+ ### Enhancements
105
+
106
+ - Test rpush with Ruby 2.5 on Travis CI ([#407](https://github.com/rpush/rpush/pull/407) by [@Atul9](https://github.com/Atul9))
107
+
108
+ ## 3.0.2 (2018-01-08)
109
+
110
+ #### Fixes
111
+
112
+ * Fixes migrations added in 3.0.1 ([#396](https://github.com/rpush/rpush/pull/396) by [@grosser](https://github.com/grosser))
113
+ * Actually run these migrations in the test suite ([#399](https://github.com/rpush/rpush/pull/399) by [@aried3r](https://github.com/aried3r))
114
+
115
+ ## 3.0.1 (2017-11-30)
116
+
117
+ #### Enhancements
118
+
119
+ * Reduce booleans to true/false, do not allow nil ([#384](https://github.com/rpush/rpush/pull/384)) by [@grosser](https://github.com/grosser)
120
+ * Better error message for error 8 in APNS ([#387](https://github.com/rpush/rpush/pull/387/files)) by [@grosser](https://github.com/grosser)
121
+
122
+ ## 3.0.0 (2017-09-15)
123
+
124
+ Same as 3.0.0.rc1 including:
125
+
126
+ #### Features
127
+
128
+ * Added support for latest modis version ([#378](https://github.com/rpush/rpush/pull/378)) by [@milgner](https://github.com/milgner)
129
+
130
+ ## 3.0.0.rc1 (2017-08-31)
131
+
132
+ When upgrading, don't forget to run `bundle exec rpush init` to get all the latest migrations.
133
+
134
+ #### Features
135
+
136
+ * Added support for APNS `mutable-content` ([#296](https://github.com/rpush/rpush/pull/296) by [@tdtran](https://github.com/tdtran))
137
+ * 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))
138
+
139
+ #### Changes
140
+
141
+ * **Breaking:** Dropped support for old Rubies and Rails versions. rpush 3.0 only supports Ruby versions 2.2.2 or higher and
142
+ Rails 4.2 or higher. ([#366](https://github.com/rpush/rpush/pull/366) by [@aried3r](https://github.com/aried3r))
143
+ * **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))
144
+ * **Breaking:** Dropped JRuby support. ([#366](https://github.com/rpush/rpush/pull/366) by [@aried3r](https://github.com/aried3r))
145
+
146
+ * Make synchronizer aware of GCM and WNS apps ([#254](https://github.com/rpush/rpush/pull/254) by [@wouterh](https://github.com/wouterh))
147
+ * Precise after init commit msg ([#266](https://github.com/rpush/rpush/pull/266) by [@azranel](https://github.com/azranel))
148
+ * Use new GCM endpoint ([#303](https://github.com/rpush/rpush/pull/303) by [@aried3r](https://github.com/aried3r))
149
+ * Remove sound default value ([#320](https://github.com/rpush/rpush/pull/320) by [@amaierhofer](https://github.com/amaierhofer))
150
+
151
+ #### Bugfixes
152
+
153
+ * ~~~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))~~~
154
+ * 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))
155
+ * 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))
156
+
157
+ ## 2.7.0 (February 9, 2016)
158
+
159
+ #### Features
160
+
161
+ * Added support for GCM priorities. ([#243](https://github.com/rpush/rpush/pull/243) by [@aried3r](https://github.com/aried3r))
162
+ * Added support for GCM notification payload ([#246](https://github.com/rpush/rpush/pull/246) by [@aried3r](https://github.com/aried3r))
163
+ * Added support for Windows Raw Notifications (in JSON form) ([#238](https://github.com/rpush/rpush/pull/238) by [@mseppae](https://github.com/mseppae))
164
+ * Added WNS badge notifications ([#247](https://github.com/rpush/rpush/pull/247) by [@wouterh](https://github.com/wouterh))
165
+ * Added the `launch` argument of WNS toast notifications ([#247](https://github.com/rpush/rpush/pull/247) by [@wouterh](https://github.com/wouterh))
166
+ * Added sound in WNS toast notifications ([#247](https://github.com/rpush/rpush/pull/247) by [@wouterh](https://github.com/wouterh))
167
+
168
+ #### Changes
169
+
170
+ * 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))
171
+
172
+ #### Fixes
173
+
174
+ * 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))
175
+ * Fixed `as_json` ([#231](https://github.com/rpush/rpush/issues/231) by [@aried3r](https://github.com/aried3r))
176
+
177
+ ## 2.6.0 (January 25, 2016)
178
+
179
+ #### Features
180
+
181
+ * Added support for GCM for iOS' `content_available`. ([#221](https://github.com/rpush/rpush/pull/221))
182
+
183
+ #### Fixes
184
+
185
+ * Fix typo in Oracle support. ([#185](https://github.com/rpush/rpush/pull/185))
186
+ * Remove `param` tag from WNS message. ([#190](https://github.com/rpush/rpush/pull/190))
187
+ * Fixed WNS response headers parser. ([#192](https://github.com/rpush/rpush/pull/192))
188
+ * GCM: fixed raise of unhandled errors. ([#193](https://github.com/rpush/rpush/pull/193))
189
+ * 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))
190
+
191
+ ## 2.5.0 (July 19, 2015)
192
+ Features:
193
+ * Add 'rpush status' to inspect running Rpush internal status.
194
+ * ActiveRecord logging is no longer redirected to rpush.log when embedded (#138).
195
+ * Support for WNS (Windows RT) (#137).
196
+ * Indexes added to some Mongoid fields (#151).
197
+ * Added support for Oracle.
198
+
199
+ Bug fixes:
200
+ * Fix for handling APNs error when using `rpush push` or `Rpush.push`.
201
+ * Fix backwards compatibility issue with ActiveRecord (#144).
202
+
203
+ ## 2.4.0 (Feb 18, 2015)
204
+ Features:
205
+ * Support for MongoDB (using Mongoid).
206
+ * config.feedback_poll is now deprecated, use config.apns.feedback_receiver.frequency instead.
207
+ * Add config.apns.feedback_receiver.enabled to optionally enable the APNs feedback receiver (#129).
208
+ * Passing configuration options directly to Rpush.embed and Rpush.push is now deprecated.
209
+
210
+ Bug fixes:
211
+ * Fix setting the log level when using Rails 4+ or without Rails (#124).
212
+ * Fix the possibility for excessive error logging when using APNs (#128).
213
+ * Re-use timestamp when replacing a migration with the same name (#91).
214
+ * Ensure App/Notification type is updated during 2.0 upgrade migration (#102).
215
+
216
+ ## 2.3.2 (Jan 30, 2015)
217
+ Bug fixes:
218
+ * Internal sleep mechanism would sometimes no wait for the full duration specified.
219
+ * Rpush.push nows delivers all pending notifications before returning.
220
+ * Require thor >= 0.18.1 (#121).
221
+
222
+ ## 2.3.1 (Jan 24, 2015)
223
+ * Fix CPU thrashing while waiting for an APNs connection be established (#119).
224
+
225
+ ## 2.3.0 (Jan 19, 2015)
226
+ * Add 'version' CLI command.
227
+ * Rpush::Wpns::Notification now supports setting the 'data' attribute.
228
+ * ActiveRecord is now directed to the configured Rpush logger (#104).
229
+ * Logs are reopened when the HUP signal is received (#95).
230
+ * Fix setting config.redis_options (#114).
231
+ * Increase frequency of TCP keepalive probes on Linux.
232
+ * 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).
233
+ * Notifications are now retried instead of being marked as failed if a TCP/HTTP connection cannot be established.
234
+
235
+ ## 2.2.0 (Oct 7, 2014)
236
+ * Numerous command-line fixes, sorry folks!
237
+ * Add 'rpush push' command-line command for one-off use.
238
+
239
+ ## 2.1.0 (Oct 4, 2014)
240
+ * Bump APNs max payload size to 2048 for iOS 8.
241
+ * Add 'category' for iOS 8.
242
+ * Add url_args for Safari Push Notification Support (#77).
243
+ * Improved command-line interface.
244
+ * Rails integration is now optional.
245
+ * Added log_level config option.
246
+ * log_dir is now deprecated and has no effect, use log_file instead.
247
+
248
+ ## 2.0.1 (Sept 13, 2014)
249
+ * Add ssl_certificate_revoked reflection (#68).
250
+ * Fix for Postgis support in 2.0.0 migration (#70).
251
+
252
+ ## 2.0.0 (Sept 6, 2014)
253
+ * Use APNs enhanced binary format version 2.
254
+ * Support running multiple Rpush processes when using ActiveRecord and Redis.
255
+ * APNs error detection is now performed asynchronously, 'check_for_errors' is therefore deprecated.
256
+ * Deprecated attributes_for_device accessors. Use data instead.
257
+ * Fix signal handling to work with Ruby 2.x. (#40).
258
+ * You no longer need to signal HUP after creating a new app, they will be loaded automatically for you.
259
+ * APNs notifications are now delivered in batches, greatly improving throughput.
260
+ * Signaling HUP now also causes Rpush to immediately check for new notifications.
261
+ * The 'wakeup' config option has been removed.
262
+ * The 'batch_storage_updates' config option has been deprecated, storage backends will now always batch updates where appropriate.
263
+ * The rpush process title updates with number of queued notifications and number of dispatchers.
264
+ * Rpush::Apns::Feedback#app has been renamed to app_id and is now an Integer.
265
+ * An app is restarted when the HUP signal is received if its certificate or environment attribute changed.
266
+
267
+ ## 1.0.0 (Feb 9, 2014)
268
+ * Renamed to Rpush (from Rapns). Version number reset to 1.0.0.
269
+ * Reduce default batch size to 100.
270
+ * Fix sqlite3 support (#160).
271
+ * Drop support for Ruby 1.8.
272
+ * Improve APNs certificate validation errors (#192) @mattconnolly).
273
+ * Support for Windows Phone notifications (#191) (@matiaslina).
274
+ * Support for Amazon device messaging (#173) (@darrylyip).
275
+ * Add two new GCM reflections: gcm_delivered_to_recipient, gcm_failed_to_recipient (#184) (@jakeonfire).
276
+ * Fix migration issues (#181) (@jcoleman).
277
+ * Add GCM gcm_invalid_registration_id reflection (#171) (@marcrohloff).
278
+ * Feature: wakeup feeder via UDP socket (#164) (@mattconnolly).
279
+ * Fix reflections when using batches (#161).
280
+ * Only perform APNs certificate validation for APNs apps (#133).
281
+ * The deprecated on_apns_feedback has now been removed.
282
+ * The deprecated airbrake_notify config option has been removed.
283
+ * Removed the deprecated ability to set attributes_for_device using mass-assignment.
284
+ * Fixed issue where database connections may not be released from the connection pool.
285
+
286
+ ## 3.4.1 (Aug 30, 2013)
287
+ * Silence unintended airbrake_notify deprecation warning (#158).
288
+ * Add :dependent => :destroy to app notifications (#156).
289
+
290
+ ## 3.4.0 (Aug 28, 2013)
291
+ * Rails 4 support.
292
+ * Add apns_certificate_will_expire reflection.
293
+ * Perform storage update in batches where possible, to increase throughput.
294
+ * airbrake_notify is now deprecated, use the Reflection API instead.
295
+ * Fix calling the notification_delivered reflection twice (#149).
296
+
297
+ ## 3.3.2 (June 30, 2013)
298
+ * Fix Rails 3.0.x compatibility (#138) (@yoppi).
299
+ * Ensure Rails does not set a default value for text columns (#137).
300
+ * Fix error in down action for add_gcm migration (#135) (@alexperto).
301
+
302
+ ## 3.3.1 (June 2, 2013)
303
+ * Fix compatibility with postgres_ext (#104).
304
+ * Add ability to switch the logger (@maxsz).
305
+ * Do not validate presence of alert, badge or sound - not actually required by the APNs (#129) (@wilg).
306
+ * Catch IOError from an APNs connection. (@maxsz).
307
+ * Allow nested hashes in APNs notification attributes (@perezda).
308
+
309
+ ## 3.3.0 (April 21, 2013)
310
+ * GCM: collapse_key is no longer required to set expiry (time_to_live).
311
+ * Add reflection for GCM canonical IDs.
312
+ * Add Rpush::Daemon.store to decouple storage backend.
313
+
314
+ ## 3.2.0 (Apr 1, 2013)
315
+ * Rpush.apns_feedback for one time feedback retrieval. Rpush.push no longer checks for feedback (#117, #105).
316
+ * Lazily connect to the APNs only when a notification is to be delivered (#111).
317
+ * Ensure all notifications are sent when using Rpush.push (#107).
318
+ * Fix issue with running Rpush.push more than once in the same process (#106).
319
+
320
+ ## 3.1.0 (Jan 26, 2013)
321
+ * Rpush.reflect API for fine-grained introspection.
322
+ * Rpush.embed API for embedding Rpush into an existing process.
323
+ * Rpush.push API for using Rpush in scheduled jobs.
324
+ * Fix issue with integration with ActiveScaffold (#98) (@jeffarena).
325
+ * Fix content-available setter for APNs (#95) (@dup2).
326
+ * GCM validation fixes (#96) (@DianthuDia).
327
+
328
+ ## 3.0.1 (Dec 16, 2012)
329
+ * Fix compatibility with Rails 3.0.x. Fixes #89.
330
+
331
+ ## 3.0.0 (Dec 15, 2012)
332
+ * Add support for Google Cloud Messaging.
333
+ * Fix Heroku logging issue.
334
+
335
+ ## 2.0.5 (Nov 4, 2012) ##
336
+ * Support content-available (#68).
337
+ * Append to log files.
338
+ * Fire a callback when Feedback is received.
339
+
340
+ ## 2.0.5.rc1 (Oct 5, 2012) ##
341
+ * Release db connections back into the pool after use (#72).
342
+ * Continue to start daemon if a connection cannot be made during startup (#62) (@mattconnolly).
343
+
344
+ ## 2.0.4 (Aug 6, 2012) ##
345
+ * Don't exit when there aren't any Rpush::App instances, just warn (#55).
346
+
347
+ ## 2.0.3 (July 26, 2012) ##
348
+ * JRuby support.
349
+ * Explicitly list all attributes instead of calling column_names (#53).
350
+
351
+ ## 2.0.2 (July 25, 2012) ##
352
+ * Support MultiJson < 1.3.0.
353
+ * Make all model attributes accessible.
354
+
355
+ ## 2.0.1 (July 7, 2012) ##
356
+ * Fix delivery when using Ruby 1.8.
357
+ * MultiJson support.
358
+
359
+ ## 2.0.0 (June 19, 2012) ##
360
+
361
+ * Support for multiple apps.
362
+ * Hot Updates - add/remove apps without restart.
363
+ * MDM support.
364
+ * Removed rpush.yml in favour of command line options.
365
+ * Started the changelog!
data/LICENSE ADDED
@@ -0,0 +1,7 @@
1
+ Copyright (c) 2012 Ian Leitch
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
+
5
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6
+
7
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.