notify_user 0.1.4 → 0.3.1

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 (238) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +16 -0
  3. data/Rakefile +7 -1
  4. data/app/controllers/notify_user/base_notifications_controller.rb +36 -35
  5. data/app/mailers/notify_user/notification_mailer.rb +1 -1
  6. data/app/models/notify_user/apn_connection.rb +35 -17
  7. data/app/models/notify_user/apns.rb +124 -14
  8. data/app/models/notify_user/base_notification.rb +172 -35
  9. data/app/models/notify_user/gcm.rb +58 -0
  10. data/app/models/notify_user/push.rb +37 -0
  11. data/app/models/notify_user/unsubscribe.rb +26 -9
  12. data/app/models/notify_user/urban_airship.rb +1 -1
  13. data/app/serializers/notify_user/notification_serializer.rb +1 -4
  14. data/config/routes.rb +2 -2
  15. data/lib/generators/notify_user/aggr_interval_update/USAGE +5 -0
  16. data/lib/generators/notify_user/aggr_interval_update/aggr_interval_update_generator.rb +36 -0
  17. data/lib/generators/notify_user/aggr_interval_update/templates/add_sent_time_to_notifications.rb +10 -0
  18. data/lib/generators/notify_user/aggr_interval_update/templates/update_unsubscribe.rb +6 -0
  19. data/lib/generators/notify_user/install/install_generator.rb +2 -5
  20. data/lib/generators/notify_user/install/templates/create_notify_user_notifications.rb +8 -0
  21. data/lib/generators/notify_user/install/templates/create_notify_user_unsubscribes.rb +5 -0
  22. data/lib/generators/notify_user/notification/notification_generator.rb +1 -0
  23. data/lib/notify_user/channels/action_mailer/action_mailer_channel.rb +1 -1
  24. data/lib/notify_user/channels/apns/apns_channel.rb +23 -23
  25. data/lib/notify_user/engine.rb +0 -1
  26. data/lib/notify_user/version.rb +1 -1
  27. data/spec/controllers/notify_user/notifications_controller_spec.rb +130 -108
  28. data/spec/dummy/rails-4.1.0/Gemfile +1 -1
  29. data/spec/dummy/rails-4.1.0/app/notifications/new_post_notification.rb +2 -6
  30. data/spec/dummy/{rails-4.0.4/app/views/notify_user/new_post_notification/mobile_sdk/notification.html.erb → rails-4.1.0/app/views/notify_user/new_post_notification/mobile_sdk/aggregate_notifications.html.erb} +0 -0
  31. data/spec/dummy/rails-4.1.0/app/views/notify_user/new_post_notification/mobile_sdk/notification.html.erb +1 -0
  32. data/spec/dummy/rails-4.1.0/config/environments/production.rb +1 -6
  33. data/spec/dummy/rails-4.1.0/config/initializers/assets.rb +8 -0
  34. data/spec/dummy/rails-4.1.0/config/initializers/notify_user.rb +10 -0
  35. data/spec/dummy/rails-4.1.0/config/secrets.yml +2 -2
  36. data/spec/dummy/{rails-3.2.17/db/migrate/20141102231350_create_users.rb → rails-4.1.0/db/migrate/20150907004705_create_users.rb} +0 -0
  37. data/spec/dummy/{rails-4.0.4/db/migrate/20141102231413669669843000_create_notify_user_notifications.rb → rails-4.1.0/db/migrate/20150907004707_create_notify_user_notifications.rb} +8 -0
  38. data/spec/dummy/rails-4.1.0/db/migrate/{20141102231434013013078000_create_notify_user_unsubscribes.rb → 20150907004708_create_notify_user_unsubscribes.rb} +5 -0
  39. data/spec/dummy/{rails-3.2.17/db/migrate/20141102231353651651843000_create_notify_user_user_hashes.rb → rails-4.1.0/db/migrate/20150907004709_create_notify_user_user_hashes.rb} +0 -0
  40. data/spec/dummy/rails-4.1.0/db/schema.rb +12 -1
  41. data/spec/dummy/rails-4.1.0/log/test.log +55083 -8099
  42. data/spec/dummy/rails-4.1.0/test/test_helper.rb +0 -3
  43. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/2iFf6DF21eHswaXamThRpysQhZa4HHhfXSwW0I26I_Q.cache +3 -0
  44. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/56gcPUZsFk_z-NC4BqxyzJ2fHeG-wa2DVNUK5iFQico.cache +0 -0
  45. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/8DepzOh5SIwaxC825zft8xeBhAi84AFjIkQLBafpfcI.cache +1 -0
  46. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/DFBSCnNmEyoM8roYdJ4CwzgAxnyRtTG3S2qD1ryqXxw.cache +1 -0
  47. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/DcdyyraxoBKSYh1m6Spmfn5Qtn0V2X2t8aO3dmAi0Po.cache +3 -0
  48. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/IO46kchRzb_wUQ8H3D25_DHv7lZK4CxthkOj6ZKp8mQ.cache +1 -0
  49. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/JTg9Khb4iQ4MkGt2OoYdfz6rYD9ccxMNxCOnVK92fJA.cache +1 -0
  50. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/O8akbUwAbmIKY-AhITimq-JDQ6IgsO3Hvq2v5etufFw.cache +2 -0
  51. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/RJrFPSmoXCFaapGXw1bP4Lg0NLmr9qG2RMuN56UrR7U.cache +0 -0
  52. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/TWJMA4bg5d25falxiw_TLK0GtSXWpfl0vFaFLRpkYKI.cache +1 -0
  53. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/XjnNasrgRd0l5xx4UR4IeE-Tz1EtjiPKwmizcf59P9U.cache +0 -0
  54. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/Y829B5qbE0t7idbBscHZCJxlb-D9S6G_8P6HwwMe7J4.cache +2 -0
  55. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/aXGU_8_bWOQw87gl5m_8fgEUtethSIj95P57d5YuW5k.cache +0 -0
  56. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/cjXxcrFHyMpHUOqA38Yaft85pmxR7gZ4__TFcgJQyKA.cache +1 -0
  57. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/cpoXvFR-s_2VM6kFm4ixeZKjW6en5HiD8B-ttj-iUSI.cache +0 -0
  58. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/hAsOx0KPt1yL2Nh2sDOmOIWrAfoEZo1RxZQkNop9FOU.cache +0 -0
  59. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/j52KuMJNJLJcKPVLf8rk8USLswZAmy6Hi1OW35JjVTo.cache +1 -0
  60. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/mwsAf4xggfO0hGKNns79uKcXG7B5rk8a4Zav3vXyr6M.cache +2 -0
  61. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/tPF6H9NRpGO3whu2y5_e_R_1EACKdCwu5437D83qJT0.cache +3 -0
  62. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/x5V5ICXz753PW9A8l6gpNAh_utfwyXyixuUxtMgJ2Pg.cache +1 -0
  63. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/y8AwtETeMIB25XCoxQDwn3DmMpUFLblIFK4yb18zN4c.cache +1 -0
  64. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/yWa5z3IIFR71QlDOGDwO5IpC9vsVUGFNfficVy0q3zo.cache +1 -0
  65. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/zDCAil6tD1zhO-gqs7OG9_zEEdMVEZo_aUkZjLHP53M.cache +0 -0
  66. data/spec/factories/notify_user_notifications.rb +4 -7
  67. data/spec/factories/users.rb +7 -0
  68. data/spec/lib/notify_user/channels/apns_channel_spec.rb +65 -0
  69. data/spec/mailers/notify_user/notification_mailer_spec.rb +24 -24
  70. data/spec/models/notify_user/apn_connection_spec.rb +29 -0
  71. data/spec/models/notify_user/apns_spec.rb +96 -0
  72. data/spec/models/notify_user/gcm_spec.rb +70 -0
  73. data/spec/models/notify_user/notification_spec.rb +456 -64
  74. data/spec/models/notify_user/unsubscribe_spec.rb +59 -16
  75. data/spec/models/notify_user/user_hash_spec.rb +11 -14
  76. data/spec/serializers/notify_user/notification_serializer_spec.rb +24 -6
  77. data/spec/setup_spec.rb +3 -4
  78. data/spec/spec_helper.rb +20 -12
  79. data/spec/support/test_apn_connection.rb +8 -0
  80. data/spec/support/test_gcm_connection.rb +5 -0
  81. metadata +131 -332
  82. data/app/models/notify_user/houston.rb +0 -101
  83. data/spec/dummy/rails-3.2.17/Gemfile +0 -38
  84. data/spec/dummy/rails-3.2.17/README.rdoc +0 -261
  85. data/spec/dummy/rails-3.2.17/Rakefile +0 -7
  86. data/spec/dummy/rails-3.2.17/app/assets/images/rails.png +0 -0
  87. data/spec/dummy/rails-3.2.17/app/assets/javascripts/application.js +0 -15
  88. data/spec/dummy/rails-3.2.17/app/assets/stylesheets/application.css +0 -13
  89. data/spec/dummy/rails-3.2.17/app/controllers/application_controller.rb +0 -3
  90. data/spec/dummy/rails-3.2.17/app/controllers/notify_user/notifications_controller.rb +0 -9
  91. data/spec/dummy/rails-3.2.17/app/helpers/application_helper.rb +0 -2
  92. data/spec/dummy/rails-3.2.17/app/models/user.rb +0 -3
  93. data/spec/dummy/rails-3.2.17/app/notifications/new_post_notification.rb +0 -15
  94. data/spec/dummy/rails-3.2.17/app/views/layouts/application.html.erb +0 -14
  95. data/spec/dummy/rails-3.2.17/app/views/notify_user/layouts/action_mailer.html.erb +0 -39
  96. data/spec/dummy/rails-3.2.17/app/views/notify_user/new_post_notification/action_mailer/notification.html.erb +0 -1
  97. data/spec/dummy/rails-3.2.17/config.ru +0 -4
  98. data/spec/dummy/rails-3.2.17/config/application.rb +0 -62
  99. data/spec/dummy/rails-3.2.17/config/boot.rb +0 -6
  100. data/spec/dummy/rails-3.2.17/config/database.yml +0 -24
  101. data/spec/dummy/rails-3.2.17/config/environment.rb +0 -5
  102. data/spec/dummy/rails-3.2.17/config/environments/development.rb +0 -37
  103. data/spec/dummy/rails-3.2.17/config/environments/production.rb +0 -67
  104. data/spec/dummy/rails-3.2.17/config/environments/test.rb +0 -37
  105. data/spec/dummy/rails-3.2.17/config/initializers/backtrace_silencers.rb +0 -7
  106. data/spec/dummy/rails-3.2.17/config/initializers/inflections.rb +0 -15
  107. data/spec/dummy/rails-3.2.17/config/initializers/mime_types.rb +0 -5
  108. data/spec/dummy/rails-3.2.17/config/initializers/notify_user.rb +0 -14
  109. data/spec/dummy/rails-3.2.17/config/initializers/secret_token.rb +0 -7
  110. data/spec/dummy/rails-3.2.17/config/initializers/session_store.rb +0 -8
  111. data/spec/dummy/rails-3.2.17/config/initializers/wrap_parameters.rb +0 -14
  112. data/spec/dummy/rails-3.2.17/config/keys/development_push.pem +0 -0
  113. data/spec/dummy/rails-3.2.17/config/locales/en.yml +0 -5
  114. data/spec/dummy/rails-3.2.17/config/routes.rb +0 -58
  115. data/spec/dummy/rails-3.2.17/db/migrate/20141102231353649649586000_create_notify_user_notifications.rb +0 -13
  116. data/spec/dummy/rails-3.2.17/db/migrate/20141102231353650650817000_create_notify_user_unsubscribes.rb +0 -10
  117. data/spec/dummy/rails-3.2.17/db/schema.rb +0 -50
  118. data/spec/dummy/rails-3.2.17/db/seeds.rb +0 -7
  119. data/spec/dummy/rails-3.2.17/doc/README_FOR_APP +0 -2
  120. data/spec/dummy/rails-3.2.17/log/test.log +0 -9574
  121. data/spec/dummy/rails-3.2.17/public/404.html +0 -26
  122. data/spec/dummy/rails-3.2.17/public/422.html +0 -26
  123. data/spec/dummy/rails-3.2.17/public/500.html +0 -25
  124. data/spec/dummy/rails-3.2.17/public/favicon.ico +0 -0
  125. data/spec/dummy/rails-3.2.17/public/index.html +0 -241
  126. data/spec/dummy/rails-3.2.17/public/robots.txt +0 -5
  127. data/spec/dummy/rails-3.2.17/script/rails +0 -6
  128. data/spec/dummy/rails-3.2.17/test/fixtures/users.yml +0 -7
  129. data/spec/dummy/rails-3.2.17/test/performance/browsing_test.rb +0 -12
  130. data/spec/dummy/rails-3.2.17/test/test_helper.rb +0 -13
  131. data/spec/dummy/rails-3.2.17/test/unit/user_test.rb +0 -7
  132. data/spec/dummy/rails-4.0.4/Gemfile +0 -45
  133. data/spec/dummy/rails-4.0.4/README.rdoc +0 -28
  134. data/spec/dummy/rails-4.0.4/Rakefile +0 -6
  135. data/spec/dummy/rails-4.0.4/app/assets/javascripts/application.js +0 -16
  136. data/spec/dummy/rails-4.0.4/app/assets/stylesheets/application.css +0 -13
  137. data/spec/dummy/rails-4.0.4/app/controllers/application_controller.rb +0 -5
  138. data/spec/dummy/rails-4.0.4/app/controllers/notify_user/notifications_controller.rb +0 -9
  139. data/spec/dummy/rails-4.0.4/app/helpers/application_helper.rb +0 -2
  140. data/spec/dummy/rails-4.0.4/app/models/user.rb +0 -2
  141. data/spec/dummy/rails-4.0.4/app/notifications/new_post_notification.rb +0 -15
  142. data/spec/dummy/rails-4.0.4/app/views/layouts/application.html.erb +0 -14
  143. data/spec/dummy/rails-4.0.4/app/views/notify_user/layouts/action_mailer.html.erb +0 -39
  144. data/spec/dummy/rails-4.0.4/app/views/notify_user/new_post_notification/action_mailer/notification.html.erb +0 -1
  145. data/spec/dummy/rails-4.0.4/bin/bundle +0 -3
  146. data/spec/dummy/rails-4.0.4/bin/rails +0 -4
  147. data/spec/dummy/rails-4.0.4/bin/rake +0 -4
  148. data/spec/dummy/rails-4.0.4/config.ru +0 -4
  149. data/spec/dummy/rails-4.0.4/config/application.rb +0 -23
  150. data/spec/dummy/rails-4.0.4/config/boot.rb +0 -4
  151. data/spec/dummy/rails-4.0.4/config/database.yml +0 -24
  152. data/spec/dummy/rails-4.0.4/config/environment.rb +0 -5
  153. data/spec/dummy/rails-4.0.4/config/environments/development.rb +0 -29
  154. data/spec/dummy/rails-4.0.4/config/environments/production.rb +0 -80
  155. data/spec/dummy/rails-4.0.4/config/environments/test.rb +0 -36
  156. data/spec/dummy/rails-4.0.4/config/initializers/backtrace_silencers.rb +0 -7
  157. data/spec/dummy/rails-4.0.4/config/initializers/filter_parameter_logging.rb +0 -4
  158. data/spec/dummy/rails-4.0.4/config/initializers/inflections.rb +0 -16
  159. data/spec/dummy/rails-4.0.4/config/initializers/mime_types.rb +0 -5
  160. data/spec/dummy/rails-4.0.4/config/initializers/notify_user.rb +0 -14
  161. data/spec/dummy/rails-4.0.4/config/initializers/secret_token.rb +0 -12
  162. data/spec/dummy/rails-4.0.4/config/initializers/session_store.rb +0 -3
  163. data/spec/dummy/rails-4.0.4/config/initializers/wrap_parameters.rb +0 -14
  164. data/spec/dummy/rails-4.0.4/config/keys/development_push.pem +0 -136
  165. data/spec/dummy/rails-4.0.4/config/locales/en.yml +0 -23
  166. data/spec/dummy/rails-4.0.4/config/routes.rb +0 -56
  167. data/spec/dummy/rails-4.0.4/db/migrate/20141102231412_create_users.rb +0 -9
  168. data/spec/dummy/rails-4.0.4/db/migrate/20141102231413670670945000_create_notify_user_unsubscribes.rb +0 -10
  169. data/spec/dummy/rails-4.0.4/db/migrate/20141102231413671671735000_create_notify_user_user_hashes.rb +0 -12
  170. data/spec/dummy/rails-4.0.4/db/schema.rb +0 -53
  171. data/spec/dummy/rails-4.0.4/db/seeds.rb +0 -7
  172. data/spec/dummy/rails-4.0.4/log/test.log +0 -45689
  173. data/spec/dummy/rails-4.0.4/public/404.html +0 -58
  174. data/spec/dummy/rails-4.0.4/public/422.html +0 -58
  175. data/spec/dummy/rails-4.0.4/public/500.html +0 -57
  176. data/spec/dummy/rails-4.0.4/public/favicon.ico +0 -0
  177. data/spec/dummy/rails-4.0.4/public/robots.txt +0 -5
  178. data/spec/dummy/rails-4.0.4/test/fixtures/users.yml +0 -7
  179. data/spec/dummy/rails-4.0.4/test/models/user_test.rb +0 -7
  180. data/spec/dummy/rails-4.0.4/test/test_helper.rb +0 -15
  181. data/spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/0e8918f38b9bf3fc19fca4efda1600a1 +0 -0
  182. data/spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  183. data/spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/1bded108b40ef13c7e07be129e2cd83c +0 -0
  184. data/spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/1ebdd9dfe7e88e90bee37951e2da1ea2 +0 -0
  185. data/spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/23fe609acece1521082ad6b8249f96b1 +0 -0
  186. data/spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  187. data/spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  188. data/spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/40fd179449501b801f80c852d1635a16 +0 -0
  189. data/spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/4499e16a29d89bdf30304de41c456b43 +0 -0
  190. data/spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/49088e1598df49c63ff7d874c97e958f +0 -0
  191. data/spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/7398a3a743326d3576cbb05a000df04b +0 -0
  192. data/spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/8eedfb1d9aee665c9f5a77df67b64a81 +0 -0
  193. data/spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/91d718eeae4552c702b8eafd9e8bbe76 +0 -0
  194. data/spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/9e2c26ef339b5827a5c296acb284ab99 +0 -0
  195. data/spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/a4f2f445b4f8578493957e4f7b0c76e3 +0 -0
  196. data/spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/af361e697648848dbf0282eba1d15c2f +0 -0
  197. data/spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/af95fe3d35c9fe417700e8c3625329fe +0 -0
  198. data/spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/b89f385c2540cb58f04dbfed561d3902 +0 -0
  199. data/spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/bc1864fd5bfa875243b05071735cbb82 +0 -0
  200. data/spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/bede0f0813e15081ea4ee32b640c92c4 +0 -0
  201. data/spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/c1ba4e65491e8bb9fcdc38b22cb64aa9 +0 -0
  202. data/spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/cb741827a22668ecf975f78242076b6b +0 -0
  203. data/spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  204. data/spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/d3516b65bb025bc333e0f91647a7b119 +0 -0
  205. data/spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  206. data/spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/df7c1d81da90fb0287da1e283291dc81 +0 -0
  207. data/spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/f78ea05f6019d54c3572513ebae03556 +0 -0
  208. data/spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/f7c2f64864ec1995aee8dcead45d7f24 +0 -0
  209. data/spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  210. data/spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/fbbb5b21a4144f5e3efee9eda4fc38e5 +0 -0
  211. data/spec/dummy/rails-4.1.0/db/migrate/20141102231432_create_users.rb +0 -9
  212. data/spec/dummy/rails-4.1.0/db/migrate/20141102231434012012157000_create_notify_user_notifications.rb +0 -13
  213. data/spec/dummy/rails-4.1.0/db/migrate/20141102231434013013847000_create_notify_user_user_hashes.rb +0 -12
  214. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  215. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/1bded108b40ef13c7e07be129e2cd83c +0 -0
  216. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/1ebdd9dfe7e88e90bee37951e2da1ea2 +0 -0
  217. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/23fe609acece1521082ad6b8249f96b1 +0 -0
  218. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  219. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  220. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/3fa5cc1bc06bfb81887b971eb8d36258 +0 -0
  221. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/796287194e2490ae173cabd0f8e0fce7 +0 -0
  222. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/8d2563dcd2d59f9e020fc2623eda3999 +0 -0
  223. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/8ebc0d0c963e18c7c16e6e7f55fd379f +0 -0
  224. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/91d718eeae4552c702b8eafd9e8bbe76 +0 -0
  225. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/9e2c26ef339b5827a5c296acb284ab99 +0 -0
  226. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/a098882f88a8b3ca91d2efaada23dba3 +0 -0
  227. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/af361e697648848dbf0282eba1d15c2f +0 -0
  228. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/b89f385c2540cb58f04dbfed561d3902 +0 -0
  229. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/c1ba4e65491e8bb9fcdc38b22cb64aa9 +0 -0
  230. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/cb741827a22668ecf975f78242076b6b +0 -0
  231. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  232. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  233. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/df7c1d81da90fb0287da1e283291dc81 +0 -0
  234. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/f031b3342a7246183ffa1bb7819f293e +0 -0
  235. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/f78ea05f6019d54c3572513ebae03556 +0 -0
  236. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  237. data/spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/fbbb5b21a4144f5e3efee9eda4fc38e5 +0 -0
  238. data/spec/models/notify_user/houston_spec.rb +0 -33
@@ -2,38 +2,81 @@ require 'spec_helper'
2
2
 
3
3
  module NotifyUser
4
4
  describe Unsubscribe do
5
+ let(:user) { create(:user) }
6
+ let(:notification) { NotifyUser.send_notification('new_post_notification').to(user).with(name: 'Mr. Blobby') }
7
+ let(:unsubscribe) { Unsubscribe.create(target: user, type: 'NewPostNotification') }
5
8
 
6
- let(:user) { User.create({email: "user@example.com" })}
7
- let(:notification) { NotifyUser.send_notification('new_post_notification').to(user).with(name: "Mr. Blobby") }
8
- let(:unsubscribe) { NotifyUser::Unsubscribe.create({target: user, type: "NewPostNotification"}) }
9
+ describe 'self.unsubscribe' do
10
+ it "creates unsubscribe object if it doesn't exist" do
11
+ expect do
12
+ Unsubscribe.unsubscribe(user, 'NewPostNotification')
13
+ end.to change(Unsubscribe, :count).by(1)
14
+ end
15
+
16
+ it "doesn't create if already exists" do
17
+ Unsubscribe.unsubscribe(user, 'NewPostNotification')
18
+ expect do
19
+ Unsubscribe.unsubscribe(user, 'NewPostNotification')
20
+ end.not_to change(Unsubscribe, :count)
21
+ end
22
+ end
23
+
24
+ describe 'self.subscribe' do
25
+ it 'removes unsubscribe if exists for type' do
26
+ Unsubscribe.create(target: user, type: 'NewPostNotification')
27
+
28
+ expect do
29
+ Unsubscribe.subscribe(user, 'NewPostNotification')
30
+ end.to change(Unsubscribe, :count).by(-1)
31
+ end
9
32
 
33
+ it "doesn't remove unsubscribe for another type" do
34
+ Unsubscribe.create(target: user, type: 'AnotherPostNotification')
35
+
36
+ expect do
37
+ Unsubscribe.subscribe(user, 'NewPostNotification')
38
+ end.not_to change(Unsubscribe, :count)
39
+ end
40
+
41
+ it 'removes unsubscribe object if exists for type and group_id' do
42
+ Unsubscribe.create(target: user, type: 'NewPostNotification', group_id: 1)
43
+ expect do
44
+ Unsubscribe.subscribe(user, 'NewPostNotification', 1)
45
+ end.to change(Unsubscribe, :count).by(-1)
46
+ end
47
+
48
+ it "doesn't remove unsubscribe object for another group_id" do
49
+ Unsubscribe.create(target: user, type: 'NewPostNotification', group_id: 1)
50
+ expect do
51
+ Unsubscribe.subscribe(user, 'NewPostNotification', 2)
52
+ end.not_to change(Unsubscribe, :count)
53
+ end
54
+ end
10
55
 
11
- describe "unsubscribed" do
56
+ describe 'unsubscribed' do
12
57
  before :each do
13
- unsubscribe.save
58
+ unsubscribe
14
59
  end
15
60
 
16
61
  it "doesn't create notification object if unsubscribed" do
17
- notification.save
18
- notification.errors[:target].first.should eq " has unsubscribed from this type"
62
+ expect(notification).to_not be_valid
19
63
  end
20
64
 
21
65
  it "doesn't queue an aggregation background worker if unsubscribed" do
22
- notification.class.should_not_receive(:delay_for)
66
+ expect(notification.class).not_to receive(:delay_for)
23
67
  notification.notify
24
68
  end
25
69
 
26
- it "toggles the status of a subscription" do
27
- unsubscribe = NotifyUser::Unsubscribe.create({target: user, type: "NewPostNotification"})
28
- NotifyUser::Unsubscribe.toggle_status(user, "NewPostNotification")
29
- NotifyUser::Unsubscribe.has_unsubscribed_from(user, 'NewPostNotification').should eq []
70
+ it 'toggles the status of a subscription' do
71
+ Unsubscribe.create(target: user, type: 'NewPostNotification')
72
+ Unsubscribe.toggle_status(user, 'NewPostNotification')
73
+ expect(Unsubscribe.has_unsubscribed_from?(user, 'NewPostNotification')).to eq false
30
74
  end
31
75
  end
32
76
 
33
- describe "subscribed" do
34
- it "creates notification if subscribed" do
35
- notification.save
36
- notification.errors.count.should eq 0
77
+ describe 'subscribed' do
78
+ it 'valid if unsubscribe is not present' do
79
+ expect(notification).to be_valid
37
80
  end
38
81
  end
39
82
  end
@@ -2,34 +2,31 @@ require 'spec_helper'
2
2
 
3
3
  module NotifyUser
4
4
  describe UserHash do
5
+ let(:user) { create(:user) }
6
+ let(:user_hash) { UserHash.create(target: user, type: 'NewPostNotification') }
5
7
 
6
- let(:user) { User.create({email: "user@example.com" })}
7
- let(:user_hash) { NotifyUser::UserHash.create({target: user, type: "NewPostNotification"})}
8
-
9
- describe "check hash" do
8
+ describe 'check hash' do
10
9
  before :each do
11
10
  user_hash.save
12
11
  end
13
-
12
+
14
13
  it "returns true if hash hasn't be used before" do
15
- NotifyUser::UserHash.confirm_hash(user_hash.token,"NewPostNotification").should eq true
14
+ expect(UserHash.confirm_hash(user_hash.token, 'NewPostNotification')).to eq true
16
15
  end
17
16
 
18
- it "returns false if hash has been used before" do
17
+ it 'returns false if hash has been used before' do
19
18
  user_hash.deactivate
20
- NotifyUser::UserHash.confirm_hash(user_hash.token,"NewPostNotification").should eq false
19
+ expect(UserHash.confirm_hash(user_hash.token, 'NewPostNotification')).to eq false
21
20
  end
22
21
 
23
- it "deactivates hash setting active to false" do
22
+ it 'deactivates hash setting active to false' do
24
23
  user_hash.deactivate
25
- user_hash.active.should eq false
24
+ expect(user_hash.active).to eq false
26
25
  end
27
26
 
28
- it "generates a 44 character hash on create" do
29
- user_hash.token.length.should eq 44
27
+ it 'generates a 44 character hash on create' do
28
+ expect(user_hash.token.length).to eq 44
30
29
  end
31
-
32
30
  end
33
-
34
31
  end
35
32
  end
@@ -1,10 +1,28 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe NotifyUser::NotificationSerializer do
3
+ describe NotifyUser::NotificationSerializer, type: :model do
4
+ let(:resource) { create(:notify_user_notification) }
5
+ let(:serializer) { described_class.new(resource) }
6
+ let(:attributes) {[
7
+ 'id',
8
+ 'type',
9
+ 'message',
10
+ 'read',
11
+ 'params',
12
+ 'created_at',
13
+ ]}
4
14
 
5
- it { should include_root(:notifications) }
6
- it { should have_attribute(:message) }
7
- it { should have_attribute(:id) }
8
- it { should have_attribute(:read) }
9
-
15
+ subject do
16
+ JSON.parse(serializer.to_json)
17
+ end
18
+
19
+ describe 'root' do
20
+ it 'has a notifications root' do
21
+ expect(subject['notifications']).not_to be_nil
22
+ end
23
+
24
+ it 'has the correct attributes in the root' do
25
+ expect(subject['notifications'].keys).to match_array(attributes)
26
+ end
27
+ end
10
28
  end
data/spec/setup_spec.rb CHANGED
@@ -3,15 +3,14 @@ require 'spec_helper'
3
3
  describe "setup initializer" do
4
4
 
5
5
  it "sets a default mailer_sender" do
6
- NotifyUser.mailer_sender.should eq "please-change-me-at-config-initializers-notify-user@example.com"
6
+ expect(NotifyUser.mailer_sender).to eq "please-change-me-at-config-initializers-notify-user@example.com"
7
7
  end
8
8
 
9
9
  it "sets an authentication method" do
10
- NotifyUser.authentication_method.should eq :authenticate_user!
10
+ expect(NotifyUser.authentication_method).to eq :authenticate_user!
11
11
  end
12
12
 
13
13
  it "sets a current user method" do
14
- NotifyUser.current_user_method.should eq :current_user
14
+ expect(NotifyUser.current_user_method).to eq :current_user
15
15
  end
16
-
17
16
  end
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,5 @@
1
+ ENV['RAILS_ENV'] ||= 'test'
2
+
1
3
  $LOAD_PATH.unshift(File.dirname(__FILE__))
2
4
  $LOAD_PATH << File.expand_path('../support', __FILE__)
3
5
 
@@ -5,41 +7,41 @@ $LOAD_PATH << File.expand_path('../support', __FILE__)
5
7
  ENV['BUNDLE_GEMFILE'] ||= 'gemfiles/rails40.gemfile'
6
8
 
7
9
  ENV['BUNDLE_GEMFILE'] = File.expand_path(ENV['BUNDLE_GEMFILE'])
8
- require "bundler"
10
+ require 'bundler'
9
11
  Bundler.setup
10
12
 
11
13
  ENV['RAILS_ENV'] = 'test'
12
14
  ENV['RAILS_ROOT'] = File.expand_path("../dummy/rails-#{ENV['RAILS_VERSION']}", __FILE__)
13
15
 
14
-
15
-
16
16
  # Create the test app if it doesn't exists
17
- unless File.exists?(ENV['RAILS_ROOT'])
18
- system 'rake setup'
19
- end
17
+ system 'rake setup' unless File.exist?(ENV['RAILS_ROOT'])
20
18
 
21
19
  require 'rails/all'
22
20
  require 'sidekiq'
23
21
  require File.expand_path("#{ENV['RAILS_ROOT']}/config/environment.rb", __FILE__)
24
22
 
25
23
  puts "Testing with Rails #{Rails::VERSION::STRING} and Ruby #{RUBY_VERSION}"
26
-
24
+ require 'pry'
27
25
  require 'rspec/rails'
28
26
  require 'capybara/rails'
29
27
  require 'factory_girl_rails'
30
28
  require 'sidekiq/testing'
31
- require "awesome_print"
29
+ require 'awesome_print'
30
+ require 'timecop'
32
31
 
33
32
  Sidekiq::Testing.inline!
34
33
 
35
34
  RSpec.configure do |config|
36
- config.infer_base_class_for_anonymous_controllers = false
37
35
  config.use_transactional_fixtures = true
36
+ config.infer_spec_type_from_file_location!
37
+
38
+ # Use FactoryGirl shortcuts
39
+ config.include FactoryGirl::Syntax::Methods
38
40
 
39
41
  def mailer_should_render_template(mailer, template)
40
42
  original_method = mailer.method(:_render_template)
41
- mailer.should_receive(:_render_template) do |arg|
42
- arg[:template].virtual_path.should eq template
43
+ expect(mailer).to receive(:_render_template) do |arg|
44
+ expect(arg[:template].virtual_path).to eq template
43
45
  original_method.call(arg)
44
46
  end
45
47
  end
@@ -48,4 +50,10 @@ RSpec.configure do |config|
48
50
  JSON.parse(response.body).with_indifferent_access
49
51
  end
50
52
 
51
- end
53
+ def create_device_double(options = {})
54
+ device = instance_double('Device')
55
+ token = options[:token] || 'token'
56
+ allow(device).to receive(:token) { token }
57
+ device
58
+ end
59
+ end
@@ -0,0 +1,8 @@
1
+ class TestAPNConnection
2
+ def closed?
3
+ true
4
+ end
5
+
6
+ def open; end
7
+ def ssl; end
8
+ end
@@ -0,0 +1,5 @@
1
+ class TestGCMConnection
2
+ def send(*args)
3
+ # Stub out the response here, or mock in spec
4
+ end
5
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: notify_user
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom Spacek
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-12 00:00:00.000000000 Z
11
+ date: 2015-11-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: 3.0.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: 3.0.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: kaminari
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -81,7 +81,7 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: urbanairship
84
+ name: pubnub
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
@@ -95,7 +95,7 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: pubnub
98
+ name: houston
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="
@@ -109,7 +109,7 @@ dependencies:
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: houston
112
+ name: connection_pool
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ">="
@@ -123,7 +123,7 @@ dependencies:
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
- name: connection_pool
126
+ name: gcm
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - ">="
@@ -234,6 +234,48 @@ dependencies:
234
234
  - - ">="
235
235
  - !ruby/object:Gem::Version
236
236
  version: '0'
237
+ - !ruby/object:Gem::Dependency
238
+ name: pry
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: '0'
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
251
+ - !ruby/object:Gem::Dependency
252
+ name: appraisal
253
+ requirement: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - ">="
256
+ - !ruby/object:Gem::Version
257
+ version: '0'
258
+ type: :development
259
+ prerelease: false
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - ">="
263
+ - !ruby/object:Gem::Version
264
+ version: '0'
265
+ - !ruby/object:Gem::Dependency
266
+ name: timecop
267
+ requirement: !ruby/object:Gem::Requirement
268
+ requirements:
269
+ - - ">="
270
+ - !ruby/object:Gem::Version
271
+ version: '0'
272
+ type: :development
273
+ prerelease: false
274
+ version_requirements: !ruby/object:Gem::Requirement
275
+ requirements:
276
+ - - ">="
277
+ - !ruby/object:Gem::Version
278
+ version: '0'
237
279
  description: Drop-in solution for user notifications. Handles notifying by email,
238
280
  SMS and APNS, plus per-user notification frequency settings and views for checking
239
281
  new notifications.
@@ -256,8 +298,9 @@ files:
256
298
  - app/models/notify_user/apn_connection.rb
257
299
  - app/models/notify_user/apns.rb
258
300
  - app/models/notify_user/base_notification.rb
259
- - app/models/notify_user/houston.rb
301
+ - app/models/notify_user/gcm.rb
260
302
  - app/models/notify_user/pub_nub.rb
303
+ - app/models/notify_user/push.rb
261
304
  - app/models/notify_user/unsubscribe.rb
262
305
  - app/models/notify_user/urban_airship.rb
263
306
  - app/models/notify_user/user_hash.rb
@@ -268,6 +311,10 @@ files:
268
311
  - app/views/notify_user/base_notifications/index.html.erb
269
312
  - app/views/notify_user/base_notifications/unsubscribe.html.erb
270
313
  - config/routes.rb
314
+ - lib/generators/notify_user/aggr_interval_update/USAGE
315
+ - lib/generators/notify_user/aggr_interval_update/aggr_interval_update_generator.rb
316
+ - lib/generators/notify_user/aggr_interval_update/templates/add_sent_time_to_notifications.rb
317
+ - lib/generators/notify_user/aggr_interval_update/templates/update_unsubscribe.rb
271
318
  - lib/generators/notify_user/install/USAGE
272
319
  - lib/generators/notify_user/install/install_generator.rb
273
320
  - lib/generators/notify_user/install/templates/create_notify_user_notifications.rb
@@ -294,138 +341,6 @@ files:
294
341
  - lib/notify_user/version.rb
295
342
  - lib/tasks/notify_user.rake
296
343
  - spec/controllers/notify_user/notifications_controller_spec.rb
297
- - spec/dummy/rails-3.2.17/Gemfile
298
- - spec/dummy/rails-3.2.17/README.rdoc
299
- - spec/dummy/rails-3.2.17/Rakefile
300
- - spec/dummy/rails-3.2.17/app/assets/images/rails.png
301
- - spec/dummy/rails-3.2.17/app/assets/javascripts/application.js
302
- - spec/dummy/rails-3.2.17/app/assets/stylesheets/application.css
303
- - spec/dummy/rails-3.2.17/app/controllers/application_controller.rb
304
- - spec/dummy/rails-3.2.17/app/controllers/notify_user/notifications_controller.rb
305
- - spec/dummy/rails-3.2.17/app/helpers/application_helper.rb
306
- - spec/dummy/rails-3.2.17/app/models/user.rb
307
- - spec/dummy/rails-3.2.17/app/notifications/new_post_notification.rb
308
- - spec/dummy/rails-3.2.17/app/views/layouts/application.html.erb
309
- - spec/dummy/rails-3.2.17/app/views/notify_user/layouts/action_mailer.html.erb
310
- - spec/dummy/rails-3.2.17/app/views/notify_user/new_post_notification/action_mailer/notification.html.erb
311
- - spec/dummy/rails-3.2.17/config.ru
312
- - spec/dummy/rails-3.2.17/config/application.rb
313
- - spec/dummy/rails-3.2.17/config/boot.rb
314
- - spec/dummy/rails-3.2.17/config/database.yml
315
- - spec/dummy/rails-3.2.17/config/environment.rb
316
- - spec/dummy/rails-3.2.17/config/environments/development.rb
317
- - spec/dummy/rails-3.2.17/config/environments/production.rb
318
- - spec/dummy/rails-3.2.17/config/environments/test.rb
319
- - spec/dummy/rails-3.2.17/config/initializers/backtrace_silencers.rb
320
- - spec/dummy/rails-3.2.17/config/initializers/inflections.rb
321
- - spec/dummy/rails-3.2.17/config/initializers/mime_types.rb
322
- - spec/dummy/rails-3.2.17/config/initializers/notify_user.rb
323
- - spec/dummy/rails-3.2.17/config/initializers/secret_token.rb
324
- - spec/dummy/rails-3.2.17/config/initializers/session_store.rb
325
- - spec/dummy/rails-3.2.17/config/initializers/wrap_parameters.rb
326
- - spec/dummy/rails-3.2.17/config/keys/development_push.pem
327
- - spec/dummy/rails-3.2.17/config/locales/en.yml
328
- - spec/dummy/rails-3.2.17/config/routes.rb
329
- - spec/dummy/rails-3.2.17/db/migrate/20141102231350_create_users.rb
330
- - spec/dummy/rails-3.2.17/db/migrate/20141102231353649649586000_create_notify_user_notifications.rb
331
- - spec/dummy/rails-3.2.17/db/migrate/20141102231353650650817000_create_notify_user_unsubscribes.rb
332
- - spec/dummy/rails-3.2.17/db/migrate/20141102231353651651843000_create_notify_user_user_hashes.rb
333
- - spec/dummy/rails-3.2.17/db/schema.rb
334
- - spec/dummy/rails-3.2.17/db/seeds.rb
335
- - spec/dummy/rails-3.2.17/doc/README_FOR_APP
336
- - spec/dummy/rails-3.2.17/log/test.log
337
- - spec/dummy/rails-3.2.17/public/404.html
338
- - spec/dummy/rails-3.2.17/public/422.html
339
- - spec/dummy/rails-3.2.17/public/500.html
340
- - spec/dummy/rails-3.2.17/public/favicon.ico
341
- - spec/dummy/rails-3.2.17/public/index.html
342
- - spec/dummy/rails-3.2.17/public/robots.txt
343
- - spec/dummy/rails-3.2.17/script/rails
344
- - spec/dummy/rails-3.2.17/test/fixtures/users.yml
345
- - spec/dummy/rails-3.2.17/test/performance/browsing_test.rb
346
- - spec/dummy/rails-3.2.17/test/test_helper.rb
347
- - spec/dummy/rails-3.2.17/test/unit/user_test.rb
348
- - spec/dummy/rails-4.0.4/Gemfile
349
- - spec/dummy/rails-4.0.4/README.rdoc
350
- - spec/dummy/rails-4.0.4/Rakefile
351
- - spec/dummy/rails-4.0.4/app/assets/javascripts/application.js
352
- - spec/dummy/rails-4.0.4/app/assets/stylesheets/application.css
353
- - spec/dummy/rails-4.0.4/app/controllers/application_controller.rb
354
- - spec/dummy/rails-4.0.4/app/controllers/notify_user/notifications_controller.rb
355
- - spec/dummy/rails-4.0.4/app/helpers/application_helper.rb
356
- - spec/dummy/rails-4.0.4/app/models/user.rb
357
- - spec/dummy/rails-4.0.4/app/notifications/new_post_notification.rb
358
- - spec/dummy/rails-4.0.4/app/views/layouts/application.html.erb
359
- - spec/dummy/rails-4.0.4/app/views/notify_user/layouts/action_mailer.html.erb
360
- - spec/dummy/rails-4.0.4/app/views/notify_user/new_post_notification/action_mailer/notification.html.erb
361
- - spec/dummy/rails-4.0.4/app/views/notify_user/new_post_notification/mobile_sdk/notification.html.erb
362
- - spec/dummy/rails-4.0.4/bin/bundle
363
- - spec/dummy/rails-4.0.4/bin/rails
364
- - spec/dummy/rails-4.0.4/bin/rake
365
- - spec/dummy/rails-4.0.4/config.ru
366
- - spec/dummy/rails-4.0.4/config/application.rb
367
- - spec/dummy/rails-4.0.4/config/boot.rb
368
- - spec/dummy/rails-4.0.4/config/database.yml
369
- - spec/dummy/rails-4.0.4/config/environment.rb
370
- - spec/dummy/rails-4.0.4/config/environments/development.rb
371
- - spec/dummy/rails-4.0.4/config/environments/production.rb
372
- - spec/dummy/rails-4.0.4/config/environments/test.rb
373
- - spec/dummy/rails-4.0.4/config/initializers/backtrace_silencers.rb
374
- - spec/dummy/rails-4.0.4/config/initializers/filter_parameter_logging.rb
375
- - spec/dummy/rails-4.0.4/config/initializers/inflections.rb
376
- - spec/dummy/rails-4.0.4/config/initializers/mime_types.rb
377
- - spec/dummy/rails-4.0.4/config/initializers/notify_user.rb
378
- - spec/dummy/rails-4.0.4/config/initializers/secret_token.rb
379
- - spec/dummy/rails-4.0.4/config/initializers/session_store.rb
380
- - spec/dummy/rails-4.0.4/config/initializers/wrap_parameters.rb
381
- - spec/dummy/rails-4.0.4/config/keys/development_push.pem
382
- - spec/dummy/rails-4.0.4/config/locales/en.yml
383
- - spec/dummy/rails-4.0.4/config/routes.rb
384
- - spec/dummy/rails-4.0.4/db/migrate/20141102231412_create_users.rb
385
- - spec/dummy/rails-4.0.4/db/migrate/20141102231413669669843000_create_notify_user_notifications.rb
386
- - spec/dummy/rails-4.0.4/db/migrate/20141102231413670670945000_create_notify_user_unsubscribes.rb
387
- - spec/dummy/rails-4.0.4/db/migrate/20141102231413671671735000_create_notify_user_user_hashes.rb
388
- - spec/dummy/rails-4.0.4/db/schema.rb
389
- - spec/dummy/rails-4.0.4/db/seeds.rb
390
- - spec/dummy/rails-4.0.4/log/test.log
391
- - spec/dummy/rails-4.0.4/public/404.html
392
- - spec/dummy/rails-4.0.4/public/422.html
393
- - spec/dummy/rails-4.0.4/public/500.html
394
- - spec/dummy/rails-4.0.4/public/favicon.ico
395
- - spec/dummy/rails-4.0.4/public/robots.txt
396
- - spec/dummy/rails-4.0.4/test/fixtures/users.yml
397
- - spec/dummy/rails-4.0.4/test/models/user_test.rb
398
- - spec/dummy/rails-4.0.4/test/test_helper.rb
399
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/0e8918f38b9bf3fc19fca4efda1600a1
400
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705
401
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/1bded108b40ef13c7e07be129e2cd83c
402
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/1ebdd9dfe7e88e90bee37951e2da1ea2
403
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/23fe609acece1521082ad6b8249f96b1
404
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af
405
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953
406
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/40fd179449501b801f80c852d1635a16
407
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/4499e16a29d89bdf30304de41c456b43
408
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/49088e1598df49c63ff7d874c97e958f
409
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/7398a3a743326d3576cbb05a000df04b
410
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/8eedfb1d9aee665c9f5a77df67b64a81
411
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/91d718eeae4552c702b8eafd9e8bbe76
412
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/9e2c26ef339b5827a5c296acb284ab99
413
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/a4f2f445b4f8578493957e4f7b0c76e3
414
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/af361e697648848dbf0282eba1d15c2f
415
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/af95fe3d35c9fe417700e8c3625329fe
416
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/b89f385c2540cb58f04dbfed561d3902
417
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/bc1864fd5bfa875243b05071735cbb82
418
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/bede0f0813e15081ea4ee32b640c92c4
419
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/c1ba4e65491e8bb9fcdc38b22cb64aa9
420
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/cb741827a22668ecf975f78242076b6b
421
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994
422
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/d3516b65bb025bc333e0f91647a7b119
423
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6
424
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/df7c1d81da90fb0287da1e283291dc81
425
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/f78ea05f6019d54c3572513ebae03556
426
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/f7c2f64864ec1995aee8dcead45d7f24
427
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655
428
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/fbbb5b21a4144f5e3efee9eda4fc38e5
429
344
  - spec/dummy/rails-4.1.0/Gemfile
430
345
  - spec/dummy/rails-4.1.0/README.rdoc
431
346
  - spec/dummy/rails-4.1.0/Rakefile
@@ -439,6 +354,8 @@ files:
439
354
  - spec/dummy/rails-4.1.0/app/views/layouts/application.html.erb
440
355
  - spec/dummy/rails-4.1.0/app/views/notify_user/layouts/action_mailer.html.erb
441
356
  - spec/dummy/rails-4.1.0/app/views/notify_user/new_post_notification/action_mailer/notification.html.erb
357
+ - spec/dummy/rails-4.1.0/app/views/notify_user/new_post_notification/mobile_sdk/aggregate_notifications.html.erb
358
+ - spec/dummy/rails-4.1.0/app/views/notify_user/new_post_notification/mobile_sdk/notification.html.erb
442
359
  - spec/dummy/rails-4.1.0/bin/bundle
443
360
  - spec/dummy/rails-4.1.0/bin/rails
444
361
  - spec/dummy/rails-4.1.0/bin/rake
@@ -450,6 +367,7 @@ files:
450
367
  - spec/dummy/rails-4.1.0/config/environments/development.rb
451
368
  - spec/dummy/rails-4.1.0/config/environments/production.rb
452
369
  - spec/dummy/rails-4.1.0/config/environments/test.rb
370
+ - spec/dummy/rails-4.1.0/config/initializers/assets.rb
453
371
  - spec/dummy/rails-4.1.0/config/initializers/backtrace_silencers.rb
454
372
  - spec/dummy/rails-4.1.0/config/initializers/cookies_serializer.rb
455
373
  - spec/dummy/rails-4.1.0/config/initializers/filter_parameter_logging.rb
@@ -461,10 +379,10 @@ files:
461
379
  - spec/dummy/rails-4.1.0/config/locales/en.yml
462
380
  - spec/dummy/rails-4.1.0/config/routes.rb
463
381
  - spec/dummy/rails-4.1.0/config/secrets.yml
464
- - spec/dummy/rails-4.1.0/db/migrate/20141102231432_create_users.rb
465
- - spec/dummy/rails-4.1.0/db/migrate/20141102231434012012157000_create_notify_user_notifications.rb
466
- - spec/dummy/rails-4.1.0/db/migrate/20141102231434013013078000_create_notify_user_unsubscribes.rb
467
- - spec/dummy/rails-4.1.0/db/migrate/20141102231434013013847000_create_notify_user_user_hashes.rb
382
+ - spec/dummy/rails-4.1.0/db/migrate/20150907004705_create_users.rb
383
+ - spec/dummy/rails-4.1.0/db/migrate/20150907004707_create_notify_user_notifications.rb
384
+ - spec/dummy/rails-4.1.0/db/migrate/20150907004708_create_notify_user_unsubscribes.rb
385
+ - spec/dummy/rails-4.1.0/db/migrate/20150907004709_create_notify_user_user_hashes.rb
468
386
  - spec/dummy/rails-4.1.0/db/schema.rb
469
387
  - spec/dummy/rails-4.1.0/db/seeds.rb
470
388
  - spec/dummy/rails-4.1.0/log/test.log
@@ -476,34 +394,37 @@ files:
476
394
  - spec/dummy/rails-4.1.0/test/fixtures/users.yml
477
395
  - spec/dummy/rails-4.1.0/test/models/user_test.rb
478
396
  - spec/dummy/rails-4.1.0/test/test_helper.rb
479
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705
480
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/1bded108b40ef13c7e07be129e2cd83c
481
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/1ebdd9dfe7e88e90bee37951e2da1ea2
482
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/23fe609acece1521082ad6b8249f96b1
483
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af
484
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953
485
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/3fa5cc1bc06bfb81887b971eb8d36258
486
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/796287194e2490ae173cabd0f8e0fce7
487
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/8d2563dcd2d59f9e020fc2623eda3999
488
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/8ebc0d0c963e18c7c16e6e7f55fd379f
489
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/91d718eeae4552c702b8eafd9e8bbe76
490
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/9e2c26ef339b5827a5c296acb284ab99
491
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/a098882f88a8b3ca91d2efaada23dba3
492
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/af361e697648848dbf0282eba1d15c2f
493
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/b89f385c2540cb58f04dbfed561d3902
494
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/c1ba4e65491e8bb9fcdc38b22cb64aa9
495
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/cb741827a22668ecf975f78242076b6b
496
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994
497
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6
498
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/df7c1d81da90fb0287da1e283291dc81
499
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/f031b3342a7246183ffa1bb7819f293e
500
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/f78ea05f6019d54c3572513ebae03556
501
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655
502
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/fbbb5b21a4144f5e3efee9eda4fc38e5
397
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/2iFf6DF21eHswaXamThRpysQhZa4HHhfXSwW0I26I_Q.cache
398
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/56gcPUZsFk_z-NC4BqxyzJ2fHeG-wa2DVNUK5iFQico.cache
399
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/8DepzOh5SIwaxC825zft8xeBhAi84AFjIkQLBafpfcI.cache
400
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/DFBSCnNmEyoM8roYdJ4CwzgAxnyRtTG3S2qD1ryqXxw.cache
401
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/DcdyyraxoBKSYh1m6Spmfn5Qtn0V2X2t8aO3dmAi0Po.cache
402
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/IO46kchRzb_wUQ8H3D25_DHv7lZK4CxthkOj6ZKp8mQ.cache
403
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/JTg9Khb4iQ4MkGt2OoYdfz6rYD9ccxMNxCOnVK92fJA.cache
404
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/O8akbUwAbmIKY-AhITimq-JDQ6IgsO3Hvq2v5etufFw.cache
405
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/RJrFPSmoXCFaapGXw1bP4Lg0NLmr9qG2RMuN56UrR7U.cache
406
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/TWJMA4bg5d25falxiw_TLK0GtSXWpfl0vFaFLRpkYKI.cache
407
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/XjnNasrgRd0l5xx4UR4IeE-Tz1EtjiPKwmizcf59P9U.cache
408
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/Y829B5qbE0t7idbBscHZCJxlb-D9S6G_8P6HwwMe7J4.cache
409
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/aXGU_8_bWOQw87gl5m_8fgEUtethSIj95P57d5YuW5k.cache
410
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/cjXxcrFHyMpHUOqA38Yaft85pmxR7gZ4__TFcgJQyKA.cache
411
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/cpoXvFR-s_2VM6kFm4ixeZKjW6en5HiD8B-ttj-iUSI.cache
412
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/hAsOx0KPt1yL2Nh2sDOmOIWrAfoEZo1RxZQkNop9FOU.cache
413
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/j52KuMJNJLJcKPVLf8rk8USLswZAmy6Hi1OW35JjVTo.cache
414
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/mwsAf4xggfO0hGKNns79uKcXG7B5rk8a4Zav3vXyr6M.cache
415
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/tPF6H9NRpGO3whu2y5_e_R_1EACKdCwu5437D83qJT0.cache
416
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/x5V5ICXz753PW9A8l6gpNAh_utfwyXyixuUxtMgJ2Pg.cache
417
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/y8AwtETeMIB25XCoxQDwn3DmMpUFLblIFK4yb18zN4c.cache
418
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/yWa5z3IIFR71QlDOGDwO5IpC9vsVUGFNfficVy0q3zo.cache
419
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/zDCAil6tD1zhO-gqs7OG9_zEEdMVEZo_aUkZjLHP53M.cache
503
420
  - spec/factories/notify_user_notifications.rb
421
+ - spec/factories/users.rb
504
422
  - spec/fixtures/notify_user/notification_mailer/notification_email
423
+ - spec/lib/notify_user/channels/apns_channel_spec.rb
505
424
  - spec/mailers/notify_user/notification_mailer_spec.rb
506
- - spec/models/notify_user/houston_spec.rb
425
+ - spec/models/notify_user/apn_connection_spec.rb
426
+ - spec/models/notify_user/apns_spec.rb
427
+ - spec/models/notify_user/gcm_spec.rb
507
428
  - spec/models/notify_user/notification_spec.rb
508
429
  - spec/models/notify_user/unsubscribe_spec.rb
509
430
  - spec/models/notify_user/user_hash_spec.rb
@@ -512,6 +433,8 @@ files:
512
433
  - spec/spec_helper.rb
513
434
  - spec/support/database.yml
514
435
  - spec/support/rails_template.rb
436
+ - spec/support/test_apn_connection.rb
437
+ - spec/support/test_gcm_connection.rb
515
438
  homepage: http://www.papercloud.com.au
516
439
  licenses: []
517
440
  metadata: {}
@@ -531,144 +454,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
531
454
  version: '0'
532
455
  requirements: []
533
456
  rubyforge_project:
534
- rubygems_version: 2.2.2
457
+ rubygems_version: 2.4.5
535
458
  signing_key:
536
459
  specification_version: 4
537
460
  summary: A Rails engine for user notifications.
538
461
  test_files:
539
462
  - spec/controllers/notify_user/notifications_controller_spec.rb
540
- - spec/dummy/rails-3.2.17/app/assets/images/rails.png
541
- - spec/dummy/rails-3.2.17/app/assets/javascripts/application.js
542
- - spec/dummy/rails-3.2.17/app/assets/stylesheets/application.css
543
- - spec/dummy/rails-3.2.17/app/controllers/application_controller.rb
544
- - spec/dummy/rails-3.2.17/app/controllers/notify_user/notifications_controller.rb
545
- - spec/dummy/rails-3.2.17/app/helpers/application_helper.rb
546
- - spec/dummy/rails-3.2.17/app/models/user.rb
547
- - spec/dummy/rails-3.2.17/app/notifications/new_post_notification.rb
548
- - spec/dummy/rails-3.2.17/app/views/layouts/application.html.erb
549
- - spec/dummy/rails-3.2.17/app/views/notify_user/layouts/action_mailer.html.erb
550
- - spec/dummy/rails-3.2.17/app/views/notify_user/new_post_notification/action_mailer/notification.html.erb
551
- - spec/dummy/rails-3.2.17/config/application.rb
552
- - spec/dummy/rails-3.2.17/config/boot.rb
553
- - spec/dummy/rails-3.2.17/config/database.yml
554
- - spec/dummy/rails-3.2.17/config/environment.rb
555
- - spec/dummy/rails-3.2.17/config/environments/development.rb
556
- - spec/dummy/rails-3.2.17/config/environments/production.rb
557
- - spec/dummy/rails-3.2.17/config/environments/test.rb
558
- - spec/dummy/rails-3.2.17/config/initializers/backtrace_silencers.rb
559
- - spec/dummy/rails-3.2.17/config/initializers/inflections.rb
560
- - spec/dummy/rails-3.2.17/config/initializers/mime_types.rb
561
- - spec/dummy/rails-3.2.17/config/initializers/notify_user.rb
562
- - spec/dummy/rails-3.2.17/config/initializers/secret_token.rb
563
- - spec/dummy/rails-3.2.17/config/initializers/session_store.rb
564
- - spec/dummy/rails-3.2.17/config/initializers/wrap_parameters.rb
565
- - spec/dummy/rails-3.2.17/config/keys/development_push.pem
566
- - spec/dummy/rails-3.2.17/config/locales/en.yml
567
- - spec/dummy/rails-3.2.17/config/routes.rb
568
- - spec/dummy/rails-3.2.17/config.ru
569
- - spec/dummy/rails-3.2.17/db/migrate/20141102231350_create_users.rb
570
- - spec/dummy/rails-3.2.17/db/migrate/20141102231353649649586000_create_notify_user_notifications.rb
571
- - spec/dummy/rails-3.2.17/db/migrate/20141102231353650650817000_create_notify_user_unsubscribes.rb
572
- - spec/dummy/rails-3.2.17/db/migrate/20141102231353651651843000_create_notify_user_user_hashes.rb
573
- - spec/dummy/rails-3.2.17/db/schema.rb
574
- - spec/dummy/rails-3.2.17/db/seeds.rb
575
- - spec/dummy/rails-3.2.17/doc/README_FOR_APP
576
- - spec/dummy/rails-3.2.17/Gemfile
577
- - spec/dummy/rails-3.2.17/log/test.log
578
- - spec/dummy/rails-3.2.17/public/404.html
579
- - spec/dummy/rails-3.2.17/public/422.html
580
- - spec/dummy/rails-3.2.17/public/500.html
581
- - spec/dummy/rails-3.2.17/public/favicon.ico
582
- - spec/dummy/rails-3.2.17/public/index.html
583
- - spec/dummy/rails-3.2.17/public/robots.txt
584
- - spec/dummy/rails-3.2.17/Rakefile
585
- - spec/dummy/rails-3.2.17/README.rdoc
586
- - spec/dummy/rails-3.2.17/script/rails
587
- - spec/dummy/rails-3.2.17/test/fixtures/users.yml
588
- - spec/dummy/rails-3.2.17/test/performance/browsing_test.rb
589
- - spec/dummy/rails-3.2.17/test/test_helper.rb
590
- - spec/dummy/rails-3.2.17/test/unit/user_test.rb
591
- - spec/dummy/rails-4.0.4/app/assets/javascripts/application.js
592
- - spec/dummy/rails-4.0.4/app/assets/stylesheets/application.css
593
- - spec/dummy/rails-4.0.4/app/controllers/application_controller.rb
594
- - spec/dummy/rails-4.0.4/app/controllers/notify_user/notifications_controller.rb
595
- - spec/dummy/rails-4.0.4/app/helpers/application_helper.rb
596
- - spec/dummy/rails-4.0.4/app/models/user.rb
597
- - spec/dummy/rails-4.0.4/app/notifications/new_post_notification.rb
598
- - spec/dummy/rails-4.0.4/app/views/layouts/application.html.erb
599
- - spec/dummy/rails-4.0.4/app/views/notify_user/layouts/action_mailer.html.erb
600
- - spec/dummy/rails-4.0.4/app/views/notify_user/new_post_notification/action_mailer/notification.html.erb
601
- - spec/dummy/rails-4.0.4/app/views/notify_user/new_post_notification/mobile_sdk/notification.html.erb
602
- - spec/dummy/rails-4.0.4/bin/bundle
603
- - spec/dummy/rails-4.0.4/bin/rails
604
- - spec/dummy/rails-4.0.4/bin/rake
605
- - spec/dummy/rails-4.0.4/config/application.rb
606
- - spec/dummy/rails-4.0.4/config/boot.rb
607
- - spec/dummy/rails-4.0.4/config/database.yml
608
- - spec/dummy/rails-4.0.4/config/environment.rb
609
- - spec/dummy/rails-4.0.4/config/environments/development.rb
610
- - spec/dummy/rails-4.0.4/config/environments/production.rb
611
- - spec/dummy/rails-4.0.4/config/environments/test.rb
612
- - spec/dummy/rails-4.0.4/config/initializers/backtrace_silencers.rb
613
- - spec/dummy/rails-4.0.4/config/initializers/filter_parameter_logging.rb
614
- - spec/dummy/rails-4.0.4/config/initializers/inflections.rb
615
- - spec/dummy/rails-4.0.4/config/initializers/mime_types.rb
616
- - spec/dummy/rails-4.0.4/config/initializers/notify_user.rb
617
- - spec/dummy/rails-4.0.4/config/initializers/secret_token.rb
618
- - spec/dummy/rails-4.0.4/config/initializers/session_store.rb
619
- - spec/dummy/rails-4.0.4/config/initializers/wrap_parameters.rb
620
- - spec/dummy/rails-4.0.4/config/keys/development_push.pem
621
- - spec/dummy/rails-4.0.4/config/locales/en.yml
622
- - spec/dummy/rails-4.0.4/config/routes.rb
623
- - spec/dummy/rails-4.0.4/config.ru
624
- - spec/dummy/rails-4.0.4/db/migrate/20141102231412_create_users.rb
625
- - spec/dummy/rails-4.0.4/db/migrate/20141102231413669669843000_create_notify_user_notifications.rb
626
- - spec/dummy/rails-4.0.4/db/migrate/20141102231413670670945000_create_notify_user_unsubscribes.rb
627
- - spec/dummy/rails-4.0.4/db/migrate/20141102231413671671735000_create_notify_user_user_hashes.rb
628
- - spec/dummy/rails-4.0.4/db/schema.rb
629
- - spec/dummy/rails-4.0.4/db/seeds.rb
630
- - spec/dummy/rails-4.0.4/Gemfile
631
- - spec/dummy/rails-4.0.4/log/test.log
632
- - spec/dummy/rails-4.0.4/public/404.html
633
- - spec/dummy/rails-4.0.4/public/422.html
634
- - spec/dummy/rails-4.0.4/public/500.html
635
- - spec/dummy/rails-4.0.4/public/favicon.ico
636
- - spec/dummy/rails-4.0.4/public/robots.txt
637
- - spec/dummy/rails-4.0.4/Rakefile
638
- - spec/dummy/rails-4.0.4/README.rdoc
639
- - spec/dummy/rails-4.0.4/test/fixtures/users.yml
640
- - spec/dummy/rails-4.0.4/test/models/user_test.rb
641
- - spec/dummy/rails-4.0.4/test/test_helper.rb
642
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/0e8918f38b9bf3fc19fca4efda1600a1
643
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705
644
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/1bded108b40ef13c7e07be129e2cd83c
645
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/1ebdd9dfe7e88e90bee37951e2da1ea2
646
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/23fe609acece1521082ad6b8249f96b1
647
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af
648
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953
649
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/40fd179449501b801f80c852d1635a16
650
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/4499e16a29d89bdf30304de41c456b43
651
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/49088e1598df49c63ff7d874c97e958f
652
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/7398a3a743326d3576cbb05a000df04b
653
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/8eedfb1d9aee665c9f5a77df67b64a81
654
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/91d718eeae4552c702b8eafd9e8bbe76
655
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/9e2c26ef339b5827a5c296acb284ab99
656
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/a4f2f445b4f8578493957e4f7b0c76e3
657
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/af361e697648848dbf0282eba1d15c2f
658
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/af95fe3d35c9fe417700e8c3625329fe
659
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/b89f385c2540cb58f04dbfed561d3902
660
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/bc1864fd5bfa875243b05071735cbb82
661
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/bede0f0813e15081ea4ee32b640c92c4
662
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/c1ba4e65491e8bb9fcdc38b22cb64aa9
663
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/cb741827a22668ecf975f78242076b6b
664
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994
665
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/d3516b65bb025bc333e0f91647a7b119
666
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6
667
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/df7c1d81da90fb0287da1e283291dc81
668
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/f78ea05f6019d54c3572513ebae03556
669
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/f7c2f64864ec1995aee8dcead45d7f24
670
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655
671
- - spec/dummy/rails-4.0.4/tmp/cache/assets/test/sprockets/fbbb5b21a4144f5e3efee9eda4fc38e5
672
463
  - spec/dummy/rails-4.1.0/app/assets/javascripts/application.js
673
464
  - spec/dummy/rails-4.1.0/app/assets/stylesheets/application.css
674
465
  - spec/dummy/rails-4.1.0/app/controllers/application_controller.rb
@@ -679,6 +470,8 @@ test_files:
679
470
  - spec/dummy/rails-4.1.0/app/views/layouts/application.html.erb
680
471
  - spec/dummy/rails-4.1.0/app/views/notify_user/layouts/action_mailer.html.erb
681
472
  - spec/dummy/rails-4.1.0/app/views/notify_user/new_post_notification/action_mailer/notification.html.erb
473
+ - spec/dummy/rails-4.1.0/app/views/notify_user/new_post_notification/mobile_sdk/aggregate_notifications.html.erb
474
+ - spec/dummy/rails-4.1.0/app/views/notify_user/new_post_notification/mobile_sdk/notification.html.erb
682
475
  - spec/dummy/rails-4.1.0/bin/bundle
683
476
  - spec/dummy/rails-4.1.0/bin/rails
684
477
  - spec/dummy/rails-4.1.0/bin/rake
@@ -689,6 +482,7 @@ test_files:
689
482
  - spec/dummy/rails-4.1.0/config/environments/development.rb
690
483
  - spec/dummy/rails-4.1.0/config/environments/production.rb
691
484
  - spec/dummy/rails-4.1.0/config/environments/test.rb
485
+ - spec/dummy/rails-4.1.0/config/initializers/assets.rb
692
486
  - spec/dummy/rails-4.1.0/config/initializers/backtrace_silencers.rb
693
487
  - spec/dummy/rails-4.1.0/config/initializers/cookies_serializer.rb
694
488
  - spec/dummy/rails-4.1.0/config/initializers/filter_parameter_logging.rb
@@ -701,10 +495,10 @@ test_files:
701
495
  - spec/dummy/rails-4.1.0/config/routes.rb
702
496
  - spec/dummy/rails-4.1.0/config/secrets.yml
703
497
  - spec/dummy/rails-4.1.0/config.ru
704
- - spec/dummy/rails-4.1.0/db/migrate/20141102231432_create_users.rb
705
- - spec/dummy/rails-4.1.0/db/migrate/20141102231434012012157000_create_notify_user_notifications.rb
706
- - spec/dummy/rails-4.1.0/db/migrate/20141102231434013013078000_create_notify_user_unsubscribes.rb
707
- - spec/dummy/rails-4.1.0/db/migrate/20141102231434013013847000_create_notify_user_user_hashes.rb
498
+ - spec/dummy/rails-4.1.0/db/migrate/20150907004705_create_users.rb
499
+ - spec/dummy/rails-4.1.0/db/migrate/20150907004707_create_notify_user_notifications.rb
500
+ - spec/dummy/rails-4.1.0/db/migrate/20150907004708_create_notify_user_unsubscribes.rb
501
+ - spec/dummy/rails-4.1.0/db/migrate/20150907004709_create_notify_user_user_hashes.rb
708
502
  - spec/dummy/rails-4.1.0/db/schema.rb
709
503
  - spec/dummy/rails-4.1.0/db/seeds.rb
710
504
  - spec/dummy/rails-4.1.0/Gemfile
@@ -719,34 +513,37 @@ test_files:
719
513
  - spec/dummy/rails-4.1.0/test/fixtures/users.yml
720
514
  - spec/dummy/rails-4.1.0/test/models/user_test.rb
721
515
  - spec/dummy/rails-4.1.0/test/test_helper.rb
722
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705
723
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/1bded108b40ef13c7e07be129e2cd83c
724
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/1ebdd9dfe7e88e90bee37951e2da1ea2
725
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/23fe609acece1521082ad6b8249f96b1
726
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af
727
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953
728
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/3fa5cc1bc06bfb81887b971eb8d36258
729
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/796287194e2490ae173cabd0f8e0fce7
730
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/8d2563dcd2d59f9e020fc2623eda3999
731
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/8ebc0d0c963e18c7c16e6e7f55fd379f
732
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/91d718eeae4552c702b8eafd9e8bbe76
733
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/9e2c26ef339b5827a5c296acb284ab99
734
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/a098882f88a8b3ca91d2efaada23dba3
735
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/af361e697648848dbf0282eba1d15c2f
736
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/b89f385c2540cb58f04dbfed561d3902
737
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/c1ba4e65491e8bb9fcdc38b22cb64aa9
738
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/cb741827a22668ecf975f78242076b6b
739
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994
740
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6
741
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/df7c1d81da90fb0287da1e283291dc81
742
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/f031b3342a7246183ffa1bb7819f293e
743
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/f78ea05f6019d54c3572513ebae03556
744
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655
745
- - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/fbbb5b21a4144f5e3efee9eda4fc38e5
516
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/2iFf6DF21eHswaXamThRpysQhZa4HHhfXSwW0I26I_Q.cache
517
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/56gcPUZsFk_z-NC4BqxyzJ2fHeG-wa2DVNUK5iFQico.cache
518
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/8DepzOh5SIwaxC825zft8xeBhAi84AFjIkQLBafpfcI.cache
519
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/aXGU_8_bWOQw87gl5m_8fgEUtethSIj95P57d5YuW5k.cache
520
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/cjXxcrFHyMpHUOqA38Yaft85pmxR7gZ4__TFcgJQyKA.cache
521
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/cpoXvFR-s_2VM6kFm4ixeZKjW6en5HiD8B-ttj-iUSI.cache
522
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/DcdyyraxoBKSYh1m6Spmfn5Qtn0V2X2t8aO3dmAi0Po.cache
523
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/DFBSCnNmEyoM8roYdJ4CwzgAxnyRtTG3S2qD1ryqXxw.cache
524
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/hAsOx0KPt1yL2Nh2sDOmOIWrAfoEZo1RxZQkNop9FOU.cache
525
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/IO46kchRzb_wUQ8H3D25_DHv7lZK4CxthkOj6ZKp8mQ.cache
526
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/j52KuMJNJLJcKPVLf8rk8USLswZAmy6Hi1OW35JjVTo.cache
527
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/JTg9Khb4iQ4MkGt2OoYdfz6rYD9ccxMNxCOnVK92fJA.cache
528
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/mwsAf4xggfO0hGKNns79uKcXG7B5rk8a4Zav3vXyr6M.cache
529
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/O8akbUwAbmIKY-AhITimq-JDQ6IgsO3Hvq2v5etufFw.cache
530
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/RJrFPSmoXCFaapGXw1bP4Lg0NLmr9qG2RMuN56UrR7U.cache
531
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/tPF6H9NRpGO3whu2y5_e_R_1EACKdCwu5437D83qJT0.cache
532
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/TWJMA4bg5d25falxiw_TLK0GtSXWpfl0vFaFLRpkYKI.cache
533
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/x5V5ICXz753PW9A8l6gpNAh_utfwyXyixuUxtMgJ2Pg.cache
534
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/XjnNasrgRd0l5xx4UR4IeE-Tz1EtjiPKwmizcf59P9U.cache
535
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/Y829B5qbE0t7idbBscHZCJxlb-D9S6G_8P6HwwMe7J4.cache
536
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/y8AwtETeMIB25XCoxQDwn3DmMpUFLblIFK4yb18zN4c.cache
537
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/yWa5z3IIFR71QlDOGDwO5IpC9vsVUGFNfficVy0q3zo.cache
538
+ - spec/dummy/rails-4.1.0/tmp/cache/assets/test/sprockets/v3.0/zDCAil6tD1zhO-gqs7OG9_zEEdMVEZo_aUkZjLHP53M.cache
746
539
  - spec/factories/notify_user_notifications.rb
540
+ - spec/factories/users.rb
747
541
  - spec/fixtures/notify_user/notification_mailer/notification_email
542
+ - spec/lib/notify_user/channels/apns_channel_spec.rb
748
543
  - spec/mailers/notify_user/notification_mailer_spec.rb
749
- - spec/models/notify_user/houston_spec.rb
544
+ - spec/models/notify_user/apn_connection_spec.rb
545
+ - spec/models/notify_user/apns_spec.rb
546
+ - spec/models/notify_user/gcm_spec.rb
750
547
  - spec/models/notify_user/notification_spec.rb
751
548
  - spec/models/notify_user/unsubscribe_spec.rb
752
549
  - spec/models/notify_user/user_hash_spec.rb
@@ -755,3 +552,5 @@ test_files:
755
552
  - spec/spec_helper.rb
756
553
  - spec/support/database.yml
757
554
  - spec/support/rails_template.rb
555
+ - spec/support/test_apn_connection.rb
556
+ - spec/support/test_gcm_connection.rb