activity_notification 1.4.4 → 2.2.4

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 (271) hide show
  1. checksums.yaml +5 -5
  2. data/.github/ISSUE_TEMPLATE/bug_report.md +22 -0
  3. data/.github/ISSUE_TEMPLATE/feature_request.md +17 -0
  4. data/.github/pull_request_template.md +13 -0
  5. data/.github/workflows/build.yml +116 -0
  6. data/.gitignore +15 -3
  7. data/CHANGELOG.md +200 -1
  8. data/Gemfile +17 -2
  9. data/Procfile +2 -0
  10. data/README.md +168 -1033
  11. data/Rakefile +19 -10
  12. data/activity_notification.gemspec +14 -9
  13. data/app/channels/activity_notification/notification_api_channel.rb +12 -0
  14. data/app/channels/activity_notification/notification_api_with_devise_channel.rb +46 -0
  15. data/app/channels/activity_notification/notification_channel.rb +37 -0
  16. data/app/channels/activity_notification/notification_with_devise_channel.rb +51 -0
  17. data/app/controllers/activity_notification/apidocs_controller.rb +75 -0
  18. data/app/controllers/activity_notification/notifications_api_controller.rb +143 -0
  19. data/app/controllers/activity_notification/notifications_api_with_devise_controller.rb +7 -0
  20. data/app/controllers/activity_notification/notifications_controller.rb +60 -54
  21. data/app/controllers/activity_notification/subscriptions_api_controller.rb +197 -0
  22. data/app/controllers/activity_notification/subscriptions_api_with_devise_controller.rb +7 -0
  23. data/app/controllers/activity_notification/subscriptions_controller.rb +83 -73
  24. data/app/jobs/activity_notification/notify_all_job.rb +25 -0
  25. data/app/jobs/activity_notification/notify_job.rb +26 -0
  26. data/app/jobs/activity_notification/notify_to_job.rb +25 -0
  27. data/app/views/activity_notification/notifications/default/_default.html.erb +23 -23
  28. data/app/views/activity_notification/notifications/default/_default_without_grouping.html.erb +19 -19
  29. data/app/views/activity_notification/notifications/default/_index.html.erb +3 -3
  30. data/app/views/activity_notification/notifications/default/index.html.erb +60 -7
  31. data/app/views/activity_notification/notifications/default/open.js.erb +2 -2
  32. data/app/views/activity_notification/notifications/default/open_all.js.erb +2 -2
  33. data/app/views/activity_notification/notifications/default/show.html.erb +2 -2
  34. data/app/views/activity_notification/optional_targets/default/action_cable_channel/_default.html.erb +176 -0
  35. data/app/views/activity_notification/optional_targets/default/base/_default.text.erb +1 -1
  36. data/app/views/activity_notification/optional_targets/default/slack/_default.text.erb +1 -1
  37. data/app/views/activity_notification/subscriptions/default/_form.html.erb +2 -2
  38. data/app/views/activity_notification/subscriptions/default/_notification_keys.html.erb +5 -33
  39. data/app/views/activity_notification/subscriptions/default/_subscription.html.erb +8 -8
  40. data/app/views/activity_notification/subscriptions/default/index.html.erb +13 -9
  41. data/app/views/activity_notification/subscriptions/default/show.html.erb +3 -3
  42. data/app/views/activity_notification/subscriptions/default/subscribe.js.erb +1 -1
  43. data/app/views/activity_notification/subscriptions/default/subscribe_to_email.js.erb +1 -1
  44. data/app/views/activity_notification/subscriptions/default/subscribe_to_optional_target.js.erb +1 -1
  45. data/app/views/activity_notification/subscriptions/default/unsubscribe.js.erb +1 -1
  46. data/app/views/activity_notification/subscriptions/default/unsubscribe_to_email.js.erb +1 -1
  47. data/app/views/activity_notification/subscriptions/default/unsubscribe_to_optional_target.js.erb +1 -1
  48. data/bin/_dynamodblocal +4 -0
  49. data/bin/bundle_update.sh +7 -0
  50. data/bin/deploy_on_heroku.sh +16 -0
  51. data/bin/install_dynamodblocal.sh +5 -0
  52. data/bin/start_dynamodblocal.sh +47 -0
  53. data/bin/stop_dynamodblocal.sh +34 -0
  54. data/docs/CODE_OF_CONDUCT.md +76 -0
  55. data/docs/CONTRIBUTING.md +36 -0
  56. data/docs/Functions.md +1146 -0
  57. data/docs/Setup.md +817 -0
  58. data/docs/Testing.md +148 -0
  59. data/gemfiles/Gemfile.rails-5.0 +8 -1
  60. data/gemfiles/Gemfile.rails-5.1 +7 -1
  61. data/gemfiles/Gemfile.rails-5.2 +24 -0
  62. data/gemfiles/Gemfile.rails-6.0 +23 -0
  63. data/gemfiles/Gemfile.rails-6.1 +22 -0
  64. data/gemfiles/Gemfile.rails-7.0 +25 -0
  65. data/lib/activity_notification/apis/notification_api.rb +356 -159
  66. data/lib/activity_notification/apis/subscription_api.rb +98 -59
  67. data/lib/activity_notification/apis/swagger.rb +6 -0
  68. data/lib/activity_notification/common.rb +18 -7
  69. data/lib/activity_notification/config.rb +176 -30
  70. data/lib/activity_notification/controllers/common_api_controller.rb +30 -0
  71. data/lib/activity_notification/controllers/common_controller.rb +47 -27
  72. data/lib/activity_notification/controllers/concerns/swagger/error_responses.rb +55 -0
  73. data/lib/activity_notification/controllers/concerns/swagger/notifications_api.rb +273 -0
  74. data/lib/activity_notification/controllers/concerns/swagger/notifications_parameters.rb +92 -0
  75. data/lib/activity_notification/controllers/concerns/swagger/subscriptions_api.rb +405 -0
  76. data/lib/activity_notification/controllers/concerns/swagger/subscriptions_parameters.rb +50 -0
  77. data/lib/activity_notification/controllers/devise_authentication_controller.rb +22 -5
  78. data/lib/activity_notification/gem_version.rb +14 -0
  79. data/lib/activity_notification/helpers/errors.rb +6 -0
  80. data/lib/activity_notification/helpers/view_helpers.rb +118 -28
  81. data/lib/activity_notification/mailers/helpers.rb +19 -12
  82. data/lib/activity_notification/models/concerns/notifiable.rb +142 -55
  83. data/lib/activity_notification/models/concerns/subscriber.rb +28 -13
  84. data/lib/activity_notification/models/concerns/swagger/error_schema.rb +36 -0
  85. data/lib/activity_notification/models/concerns/swagger/notification_schema.rb +209 -0
  86. data/lib/activity_notification/models/concerns/swagger/subscription_schema.rb +162 -0
  87. data/lib/activity_notification/models/concerns/target.rb +131 -32
  88. data/lib/activity_notification/models/notification.rb +1 -0
  89. data/lib/activity_notification/models/subscription.rb +1 -0
  90. data/lib/activity_notification/models.rb +23 -1
  91. data/lib/activity_notification/optional_targets/action_cable_api_channel.rb +69 -0
  92. data/lib/activity_notification/optional_targets/action_cable_channel.rb +68 -0
  93. data/lib/activity_notification/optional_targets/base.rb +9 -15
  94. data/lib/activity_notification/orm/active_record/notification.rb +23 -34
  95. data/lib/activity_notification/orm/active_record/subscription.rb +1 -1
  96. data/lib/activity_notification/orm/active_record.rb +1 -1
  97. data/lib/activity_notification/orm/dynamoid/extension.rb +262 -0
  98. data/lib/activity_notification/orm/dynamoid/notification.rb +224 -0
  99. data/lib/activity_notification/orm/dynamoid/subscription.rb +82 -0
  100. data/lib/activity_notification/orm/dynamoid.rb +530 -0
  101. data/lib/activity_notification/orm/mongoid/notification.rb +29 -28
  102. data/lib/activity_notification/orm/mongoid/subscription.rb +3 -3
  103. data/lib/activity_notification/orm/mongoid.rb +33 -1
  104. data/lib/activity_notification/rails/routes.rb +273 -60
  105. data/lib/activity_notification/renderable.rb +22 -7
  106. data/lib/activity_notification/roles/acts_as_notifiable.rb +64 -1
  107. data/lib/activity_notification/roles/acts_as_target.rb +99 -9
  108. data/lib/activity_notification/version.rb +1 -1
  109. data/lib/activity_notification.rb +14 -0
  110. data/lib/generators/activity_notification/controllers_generator.rb +2 -1
  111. data/lib/generators/templates/activity_notification.rb +61 -7
  112. data/lib/generators/templates/controllers/README +2 -2
  113. data/lib/generators/templates/controllers/notifications_api_controller.rb +31 -0
  114. data/lib/generators/templates/controllers/notifications_api_with_devise_controller.rb +31 -0
  115. data/lib/generators/templates/controllers/notifications_controller.rb +1 -37
  116. data/lib/generators/templates/controllers/notifications_with_devise_controller.rb +1 -45
  117. data/lib/generators/templates/controllers/subscriptions_api_controller.rb +61 -0
  118. data/lib/generators/templates/controllers/subscriptions_api_with_devise_controller.rb +61 -0
  119. data/lib/generators/templates/controllers/subscriptions_controller.rb +14 -37
  120. data/lib/generators/templates/controllers/subscriptions_with_devise_controller.rb +14 -45
  121. data/lib/generators/templates/migrations/migration.rb +5 -5
  122. data/lib/generators/templates/models/README +8 -4
  123. data/lib/generators/templates/models/notification.rb +1 -1
  124. data/lib/generators/templates/models/subscription.rb +1 -1
  125. data/lib/tasks/activity_notification_tasks.rake +14 -4
  126. data/package.json +8 -0
  127. data/spec/channels/notification_api_channel_shared_examples.rb +59 -0
  128. data/spec/channels/notification_api_channel_spec.rb +49 -0
  129. data/spec/channels/notification_api_with_devise_channel_spec.rb +76 -0
  130. data/spec/channels/notification_channel_shared_examples.rb +59 -0
  131. data/spec/channels/notification_channel_spec.rb +48 -0
  132. data/spec/channels/notification_with_devise_channel_spec.rb +97 -0
  133. data/spec/concerns/apis/notification_api_spec.rb +177 -12
  134. data/spec/concerns/apis/subscription_api_spec.rb +146 -4
  135. data/spec/concerns/common_spec.rb +25 -3
  136. data/spec/concerns/models/notifiable_spec.rb +161 -11
  137. data/spec/concerns/models/subscriber_spec.rb +253 -79
  138. data/spec/concerns/models/target_spec.rb +180 -47
  139. data/spec/concerns/renderable_spec.rb +35 -16
  140. data/spec/config_spec.rb +52 -1
  141. data/spec/controllers/controller_spec_utility.rb +100 -0
  142. data/spec/controllers/notifications_api_controller_shared_examples.rb +506 -0
  143. data/spec/controllers/notifications_api_controller_spec.rb +19 -0
  144. data/spec/controllers/notifications_api_with_devise_controller_spec.rb +60 -0
  145. data/spec/controllers/notifications_controller_shared_examples.rb +55 -76
  146. data/spec/controllers/notifications_controller_spec.rb +1 -2
  147. data/spec/controllers/notifications_with_devise_controller_spec.rb +14 -8
  148. data/spec/controllers/subscriptions_api_controller_shared_examples.rb +750 -0
  149. data/spec/controllers/subscriptions_api_controller_spec.rb +19 -0
  150. data/spec/controllers/subscriptions_api_with_devise_controller_spec.rb +60 -0
  151. data/spec/controllers/subscriptions_controller_shared_examples.rb +99 -121
  152. data/spec/controllers/subscriptions_controller_spec.rb +1 -2
  153. data/spec/controllers/subscriptions_with_devise_controller_spec.rb +14 -8
  154. data/spec/factories/notifications.rb +1 -1
  155. data/spec/factories/subscriptions.rb +3 -3
  156. data/spec/factories/users.rb +3 -3
  157. data/spec/generators/migration/migration_generator_spec.rb +29 -4
  158. data/spec/helpers/view_helpers_spec.rb +31 -21
  159. data/spec/jobs/notify_all_job_spec.rb +23 -0
  160. data/spec/jobs/notify_job_spec.rb +23 -0
  161. data/spec/jobs/notify_to_job_spec.rb +23 -0
  162. data/spec/mailers/mailer_spec.rb +42 -1
  163. data/spec/models/dummy/dummy_group_spec.rb +4 -0
  164. data/spec/models/dummy/dummy_notifiable_spec.rb +4 -0
  165. data/spec/models/dummy/dummy_notifier_spec.rb +4 -0
  166. data/spec/models/dummy/dummy_subscriber_spec.rb +3 -0
  167. data/spec/models/dummy/dummy_target_spec.rb +4 -0
  168. data/spec/models/notification_spec.rb +181 -45
  169. data/spec/models/subscription_spec.rb +77 -27
  170. data/spec/optional_targets/action_cable_api_channel_spec.rb +34 -0
  171. data/spec/optional_targets/action_cable_channel_spec.rb +41 -0
  172. data/spec/optional_targets/amazon_sns_spec.rb +0 -2
  173. data/spec/optional_targets/slack_spec.rb +0 -2
  174. data/spec/orm/dynamoid_spec.rb +115 -0
  175. data/spec/rails_app/Rakefile +9 -0
  176. data/spec/rails_app/app/assets/config/manifest.js +3 -0
  177. data/spec/rails_app/app/assets/javascripts/application.js +2 -1
  178. data/spec/rails_app/app/assets/javascripts/cable.js +12 -0
  179. data/spec/rails_app/app/controllers/admins_controller.rb +21 -0
  180. data/spec/rails_app/app/controllers/application_controller.rb +1 -1
  181. data/spec/rails_app/app/controllers/articles_controller.rb +6 -1
  182. data/spec/rails_app/app/controllers/comments_controller.rb +3 -1
  183. data/spec/rails_app/app/controllers/spa_controller.rb +7 -0
  184. data/spec/rails_app/app/controllers/users/notifications_controller.rb +0 -65
  185. data/spec/rails_app/app/controllers/users/notifications_with_devise_controller.rb +0 -73
  186. data/spec/rails_app/app/controllers/users/subscriptions_controller.rb +0 -77
  187. data/spec/rails_app/app/controllers/users/subscriptions_with_devise_controller.rb +0 -85
  188. data/spec/rails_app/app/controllers/users_controller.rb +26 -0
  189. data/spec/rails_app/app/javascript/App.vue +40 -0
  190. data/spec/rails_app/app/javascript/components/DeviseTokenAuth.vue +82 -0
  191. data/spec/rails_app/app/javascript/components/Top.vue +98 -0
  192. data/spec/rails_app/app/javascript/components/notifications/Index.vue +200 -0
  193. data/spec/rails_app/app/javascript/components/notifications/Notification.vue +133 -0
  194. data/spec/rails_app/app/javascript/components/notifications/NotificationContent.vue +122 -0
  195. data/spec/rails_app/app/javascript/components/subscriptions/Index.vue +279 -0
  196. data/spec/rails_app/app/javascript/components/subscriptions/NewSubscription.vue +112 -0
  197. data/spec/rails_app/app/javascript/components/subscriptions/NotificationKey.vue +141 -0
  198. data/spec/rails_app/app/javascript/components/subscriptions/Subscription.vue +226 -0
  199. data/spec/rails_app/app/javascript/config/development.js +5 -0
  200. data/spec/rails_app/app/javascript/config/environment.js +7 -0
  201. data/spec/rails_app/app/javascript/config/production.js +5 -0
  202. data/spec/rails_app/app/javascript/config/test.js +5 -0
  203. data/spec/rails_app/app/javascript/packs/application.js +18 -0
  204. data/spec/rails_app/app/javascript/packs/spa.js +14 -0
  205. data/spec/rails_app/app/javascript/router/index.js +73 -0
  206. data/spec/rails_app/app/javascript/store/index.js +37 -0
  207. data/spec/rails_app/app/models/admin.rb +15 -10
  208. data/spec/rails_app/app/models/article.rb +25 -20
  209. data/spec/rails_app/app/models/comment.rb +27 -62
  210. data/spec/rails_app/app/models/dummy/dummy_base.rb +1 -0
  211. data/spec/rails_app/app/models/dummy/dummy_group.rb +9 -0
  212. data/spec/rails_app/app/models/dummy/dummy_notifiable.rb +1 -0
  213. data/spec/rails_app/app/models/dummy/dummy_notifiable_target.rb +27 -0
  214. data/spec/rails_app/app/models/dummy/dummy_notifier.rb +1 -0
  215. data/spec/rails_app/app/models/dummy/dummy_subscriber.rb +1 -0
  216. data/spec/rails_app/app/models/dummy/dummy_target.rb +1 -0
  217. data/spec/rails_app/app/models/user.rb +44 -18
  218. data/spec/rails_app/app/views/activity_notification/notifications/default/article/_update.html.erb +146 -0
  219. data/spec/rails_app/app/views/activity_notification/notifications/users/overridden/custom/_test.html.erb +1 -0
  220. data/spec/rails_app/app/views/activity_notification/optional_targets/admins/amazon_sns/comment/_default.text.erb +1 -1
  221. data/spec/rails_app/app/views/articles/index.html.erb +68 -20
  222. data/spec/rails_app/app/views/articles/show.html.erb +1 -1
  223. data/spec/rails_app/app/views/layouts/_header.html.erb +9 -3
  224. data/spec/rails_app/app/views/spa/index.html.erb +2 -0
  225. data/spec/rails_app/babel.config.js +72 -0
  226. data/spec/rails_app/bin/webpack +18 -0
  227. data/spec/rails_app/bin/webpack-dev-server +18 -0
  228. data/spec/rails_app/config/application.rb +26 -6
  229. data/spec/rails_app/config/cable.yml +8 -0
  230. data/spec/rails_app/config/database.yml +1 -1
  231. data/spec/rails_app/config/dynamoid.rb +13 -0
  232. data/spec/rails_app/config/environment.rb +5 -1
  233. data/spec/rails_app/config/environments/development.rb +5 -0
  234. data/spec/rails_app/config/environments/production.rb +7 -1
  235. data/spec/rails_app/config/environments/test.rb +7 -11
  236. data/spec/rails_app/config/initializers/activity_notification.rb +63 -9
  237. data/spec/rails_app/config/initializers/copy_it.aws.rb.template +6 -0
  238. data/spec/rails_app/config/initializers/devise_token_auth.rb +55 -0
  239. data/spec/rails_app/config/initializers/mysql.rb +9 -0
  240. data/spec/rails_app/config/locales/activity_notification.en.yml +10 -4
  241. data/spec/rails_app/config/routes.rb +42 -1
  242. data/spec/rails_app/config/webpack/development.js +5 -0
  243. data/spec/rails_app/config/webpack/environment.js +7 -0
  244. data/spec/rails_app/config/webpack/loaders/vue.js +6 -0
  245. data/spec/rails_app/config/webpack/production.js +5 -0
  246. data/spec/rails_app/config/webpack/test.js +5 -0
  247. data/spec/rails_app/config/webpacker.yml +97 -0
  248. data/spec/rails_app/db/migrate/{20160715050433_create_test_tables.rb → 20160716000000_create_test_tables.rb} +1 -1
  249. data/spec/rails_app/db/migrate/{20160715050420_create_activity_notification_tables.rb → 20181209000000_create_activity_notification_tables.rb} +3 -3
  250. data/spec/rails_app/db/migrate/20191201000000_add_tokens_to_users.rb +10 -0
  251. data/spec/rails_app/db/schema.rb +46 -43
  252. data/spec/rails_app/db/seeds.rb +28 -4
  253. data/spec/rails_app/lib/custom_optional_targets/raise_error.rb +14 -0
  254. data/spec/rails_app/lib/mailer_previews/mailer_preview.rb +14 -4
  255. data/spec/rails_app/package.json +23 -0
  256. data/spec/rails_app/postcss.config.js +12 -0
  257. data/spec/roles/acts_as_group_spec.rb +0 -2
  258. data/spec/roles/acts_as_notifiable_spec.rb +80 -20
  259. data/spec/roles/acts_as_notifier_spec.rb +0 -2
  260. data/spec/roles/acts_as_target_spec.rb +1 -5
  261. data/spec/spec_helper.rb +13 -11
  262. data/spec/version_spec.rb +31 -0
  263. metadata +306 -53
  264. data/.travis.yml +0 -85
  265. data/Gemfile.lock +0 -234
  266. data/gemfiles/Gemfile.rails-4.2 +0 -17
  267. data/gemfiles/Gemfile.rails-4.2.lock +0 -225
  268. data/gemfiles/Gemfile.rails-5.0.lock +0 -234
  269. data/gemfiles/Gemfile.rails-5.1.lock +0 -234
  270. data/spec/rails_app/app/views/activity_notification/notifications/users/overriden/custom/_test.html.erb +0 -1
  271. /data/spec/rails_app/app/{models → assets/images}/.keep +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 46b381fdf338d9e13613c5810474c548c37e74fc
4
- data.tar.gz: 65349dbb5ded639020892a97a3046f2ce602e339
2
+ SHA256:
3
+ metadata.gz: 86e614046f4d79bd83248b78e66855f7fe8269985676b2afd95389b29e56e25f
4
+ data.tar.gz: 7a0e82b085c744a2f3197bd530b69b4ed708d93dcaa6f74ad9854afbf5ecc6a2
5
5
  SHA512:
6
- metadata.gz: 27bfed45216134b7f054a513d306dc2e63fcb2083a25dbed40191a069644381d508b30028e7325531094319b6cf936df38bedc075e487ac18b858e2d5999bc7e
7
- data.tar.gz: 478f4c8bf51dc05184fc81bee6a887cc029c11dfc66084fcc99b26f805f854f71b6d8540f80796d8df02f34f671fea278f7b28e895fcccf0f31e38791d1f41e1
6
+ metadata.gz: c0dbbb13396e89d5bbfc8f0fc034fb4c1ad1f02e8ceb8ed1e9b6b8beb8c66e55e72c2e23fcd4383564321992f7fd3fe7f7b6dc3c85ddb338ff7cf43639306f15
7
+ data.tar.gz: d972a277eabf7256deff36129a8253a423603333deebd96686d7305a9febcb7b19e85f7ea78b48655326899b06aa1535dc85f01bfb6b340df52a56db583f0336
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ ### Steps to reproduce
11
+ <!-- Tell us how to reproduce the issue -->
12
+
13
+ ### Expected behavior
14
+ <!-- Tell us what should happen -->
15
+
16
+ ### Actual behavior
17
+ <!-- Tell us what happens instead -->
18
+
19
+ ### System configuration
20
+ **activity_notification gem version**:
21
+ **Rails version**:
22
+ **ORM (ActiveRecord, Mongoid or Dynamoid)**:
@@ -0,0 +1,17 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for this project
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ ### Problem or use case
11
+ <!-- Tell us what the problem is if your feature request is related to a problem -->
12
+
13
+ ### Expected solution
14
+ <!-- Tell us what you want to happen -->
15
+
16
+ ### Alternatives
17
+ <!-- Tell us any alternative solutions or features you've considered -->
@@ -0,0 +1,13 @@
1
+ **Issue #, if available**:
2
+
3
+ ### Summary
4
+
5
+ <!-- Provide a general description of the code changes in your pull request.
6
+ Were there any bugs you had fixed? If so, mention them.
7
+ If these bugs have open GitHub issues, be sure to tag them here as well, to keep the conversation linked together. -->
8
+
9
+ ### Other Information
10
+
11
+ <!-- If there's anything else that's important and relevant to your pull request, mention that information here.
12
+
13
+ Thank you for contributing to activity_notification! -->
@@ -0,0 +1,116 @@
1
+ name: build
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - '**'
7
+ - '!images'
8
+ pull_request:
9
+ branches:
10
+ - '**'
11
+ - '!images'
12
+
13
+ jobs:
14
+ build:
15
+ runs-on: ubuntu-latest
16
+ strategy:
17
+ fail-fast: false
18
+ matrix:
19
+ gemfile:
20
+ - gemfiles/Gemfile.rails-5.0
21
+ - gemfiles/Gemfile.rails-5.1
22
+ - gemfiles/Gemfile.rails-5.2
23
+ - gemfiles/Gemfile.rails-6.0
24
+ - gemfiles/Gemfile.rails-6.1
25
+ - gemfiles/Gemfile.rails-7.0
26
+ orm:
27
+ - active_record
28
+ - mongoid
29
+ - dynamoid
30
+ include:
31
+ # https://www.ruby-lang.org/en/downloads
32
+ - gemfile: gemfiles/Gemfile.rails-5.0
33
+ ruby-version: 2.7.7
34
+ - gemfile: gemfiles/Gemfile.rails-5.1
35
+ ruby-version: 2.7.7
36
+ - gemfile: gemfiles/Gemfile.rails-5.2
37
+ ruby-version: 2.7.7
38
+ - gemfile: gemfiles/Gemfile.rails-6.0
39
+ ruby-version: 3.2.1
40
+ - gemfile: gemfiles/Gemfile.rails-6.1
41
+ ruby-version: 3.2.1
42
+ - gemfile: gemfiles/Gemfile.rails-7.0
43
+ ruby-version: 3.2.1
44
+ - gemfile: Gemfile
45
+ ruby-version: 3.2.1
46
+ orm: active_record
47
+ test-db: mysql
48
+ - gemfile: Gemfile
49
+ ruby-version: 3.2.1
50
+ orm: active_record
51
+ test-db: postgresql
52
+ - gemfile: Gemfile
53
+ ruby-version: 3.2.1
54
+ orm: mongoid
55
+ test-db: mongodb
56
+ - gemfile: Gemfile
57
+ ruby-version: head
58
+ orm: active_record
59
+ allow_failures: 'true'
60
+ exclude:
61
+ - gemfile: gemfiles/Gemfile.rails-6.0
62
+ orm: dynamoid
63
+ - gemfile: gemfiles/Gemfile.rails-6.1
64
+ orm: dynamoid
65
+ - gemfile: gemfiles/Gemfile.rails-7.0
66
+ orm: dynamoid
67
+
68
+ env:
69
+ RAILS_ENV: test
70
+ BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.gemfile }}
71
+ AN_ORM: ${{ matrix.orm }}
72
+ AN_TEST_DB: ${{ matrix.test-db }}
73
+ AWS_DEFAULT_REGION: ap-northeast-1
74
+ AWS_ACCESS_KEY_ID: dummy
75
+ AWS_SECRET_ACCESS_KEY: dummy
76
+
77
+ services:
78
+ mysql:
79
+ image: mysql
80
+ ports:
81
+ - 3306:3306
82
+ env:
83
+ MYSQL_ALLOW_EMPTY_PASSWORD: yes
84
+ MYSQL_DATABASE: activity_notification_test
85
+ options: --health-cmd "mysqladmin ping -h 127.0.0.1" --health-interval 10s --health-timeout 5s --health-retries 5
86
+ postgres:
87
+ image: postgres
88
+ ports:
89
+ - 5432:5432
90
+ env:
91
+ POSTGRES_HOST_AUTH_METHOD: trust
92
+ POSTGRES_DB: activity_notification_test
93
+ options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
94
+ mongodb:
95
+ image: mongo
96
+ ports:
97
+ - 27017:27017
98
+ env:
99
+ MONGO_INITDB_DATABASE: activity_notification_test
100
+ options: --health-cmd mongosh --health-interval 10s --health-timeout 5s --health-retries 5
101
+
102
+ steps:
103
+ - uses: actions/checkout@v2
104
+ - name: Set up Ruby
105
+ uses: ruby/setup-ruby@v1
106
+ with:
107
+ ruby-version: ${{ matrix.ruby-version }}
108
+ bundler-cache: true
109
+ - name: Setup Amazon DynamoDB Local
110
+ if: matrix.orm == 'dynamoid'
111
+ run: |
112
+ bin/install_dynamodblocal.sh
113
+ bin/start_dynamodblocal.sh
114
+ - name: Run tests with RSpec
115
+ run: bundle exec rspec
116
+ continue-on-error: ${{ matrix.allow_failures == 'true' }}
data/.gitignore CHANGED
@@ -2,12 +2,17 @@
2
2
  *.rbc
3
3
  /.config
4
4
  /coverage/
5
+ /Gemfile.lock
6
+ /gemfiles/Gemfile*.lock
5
7
  /InstalledFiles
6
8
  /pkg/
7
9
  /spec/reports/
10
+ /spec/openapi.json
8
11
  /spec/examples.txt
9
12
  /spec/rails_app/log/*
10
13
  /spec/rails_app/tmp/*
14
+ /spec/rails_app/public/assets/
15
+ /spec/DynamoDBLocal-latest/
11
16
  /test/tmp/
12
17
  /test/version_tmp/
13
18
  /tmp/
@@ -15,6 +20,7 @@
15
20
  *~
16
21
  *.sqlite3
17
22
  .project
23
+ .DS_Store
18
24
 
19
25
  # Used by dotenv library to load environment variables.
20
26
  # .env
@@ -49,11 +55,17 @@ build-iPhoneSimulator/
49
55
  /gemfiles/vendor/bundle
50
56
  /lib/bundler/man/
51
57
 
58
+ # Ignore webpacker files
59
+ /spec/rails_app/node_modules
60
+ /spec/rails_app/yarn.lock
61
+ /spec/rails_app/yarn-error.log
62
+ /spec/rails_app/public/packs
63
+ /spec/rails_app/public/packs-test
64
+
52
65
  # for a library or gem, you might want to ignore these files since the code is
53
66
  # intended to run in multiple environments; otherwise, check them in:
54
- # Gemfile.lock
55
- # .ruby-version
56
- # .ruby-gemset
67
+ .ruby-version
68
+ .ruby-gemset
57
69
 
58
70
  # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
59
71
  .rvmrc
data/CHANGELOG.md CHANGED
@@ -1,3 +1,202 @@
1
+ ## 2.2.4 / 2023-03-20
2
+ [Full Changelog](http://github.com/simukappu/activity_notification/compare/v2.2.3...v2.2.4)
3
+
4
+ Bug Fixes:
5
+
6
+ * Fix broken serialization with Rails security patch - [#166](https://github.com/simukappu/activity_notification/issues/166) [#167](https://github.com/simukappu/activity_notification/pull/167)
7
+
8
+ ## 2.2.3 / 2022-02-12
9
+ [Full Changelog](http://github.com/simukappu/activity_notification/compare/v2.2.2...v2.2.3)
10
+
11
+ Enhancements:
12
+
13
+ * Allow use with Rails 7.0 - [#164](https://github.com/simukappu/activity_notification/issues/164) [#165](https://github.com/simukappu/activity_notification/pull/165)
14
+ * Add *rescue_optional_target_errors* config option to capture errors on optional targets - [#155](https://github.com/simukappu/activity_notification/issues/155) [#156](https://github.com/simukappu/activity_notification/pull/156)
15
+ * Remove type definition from several columns with nullable and multiple type in OpenAPI schema
16
+
17
+ ## 2.2.2 / 2021-04-18
18
+ [Full Changelog](http://github.com/simukappu/activity_notification/compare/v2.2.1...v2.2.2)
19
+
20
+ Enhancements:
21
+
22
+ * Configure default subscriptions for emails and optional targets - [#159](https://github.com/simukappu/activity_notification/issues/159) [#160](https://github.com/simukappu/activity_notification/pull/160)
23
+ * Upgrade gem dependency in tests with Rails 6.1 - [#152](https://github.com/simukappu/activity_notification/issues/152)
24
+
25
+ ## 2.2.1 / 2021-01-24
26
+ [Full Changelog](http://github.com/simukappu/activity_notification/compare/v2.2.0...v2.2.1)
27
+
28
+ Enhancements:
29
+
30
+ * Allow use with Rails 6.1 - [#152](https://github.com/simukappu/activity_notification/issues/152)
31
+
32
+ ## 2.2.0 / 2020-12-05
33
+ [Full Changelog](http://github.com/simukappu/activity_notification/compare/v2.1.4...v2.2.0)
34
+
35
+ Enhancements:
36
+
37
+ * Remove support for Rails 4.2 - [#151](https://github.com/simukappu/activity_notification/issues/151)
38
+ * Turn on deprecation warnings in RSpec testing for Ruby 2.7 - [#122](https://github.com/simukappu/activity_notification/issues/122)
39
+ * Remove Ruby 2.7 deprecation warnings - [#122](https://github.com/simukappu/activity_notification/issues/122)
40
+
41
+ Breaking Changes:
42
+
43
+ * Specify DynamoDB global secondary index name
44
+ * Update additional fields to store into DynamoDB when *config.store_with_associated_records* is true
45
+
46
+ ## 2.1.4 / 2020-11-07
47
+ [Full Changelog](http://github.com/simukappu/activity_notification/compare/v2.1.3...v2.1.4)
48
+
49
+ Enhancements:
50
+
51
+ * Make *Common#to_class_name* method return base_class name in order to work with STI models - [#89](https://github.com/simukappu/activity_notification/issues/89) [#139](https://github.com/simukappu/activity_notification/pull/139)
52
+
53
+ Bug Fixes:
54
+
55
+ * Rename *Notifiable#notification_action_cable_allowed?* to *notifiable_action_cable_allowed?* to fix duplicate method name error - [#138](https://github.com/simukappu/activity_notification/issues/138)
56
+ * Fix hash syntax in swagger schemas - [#146](https://github.com/simukappu/activity_notification/issues/146) [#147](https://github.com/simukappu/activity_notification/pull/147)
57
+
58
+ ## 2.1.3 / 2020-08-11
59
+ [Full Changelog](http://github.com/simukappu/activity_notification/compare/v2.1.2...v2.1.3)
60
+
61
+ Enhancements:
62
+
63
+ * Enable to use namespaced model - [#132](https://github.com/simukappu/activity_notification/pull/132)
64
+
65
+ Bug Fixes:
66
+
67
+ * Fix mongoid any_of selector error in filtered_by_group scope - [MONGOID-4887](https://jira.mongodb.org/browse/MONGOID-4887)
68
+
69
+ ## 2.1.2 / 2020-02-24
70
+ [Full Changelog](http://github.com/simukappu/activity_notification/compare/v2.1.1...v2.1.2)
71
+
72
+ Bug Fixes:
73
+
74
+ * Fix scope of uniqueness validation in subscription model with mongoid - [#126](https://github.com/simukappu/activity_notification/issues/126) [#128](https://github.com/simukappu/activity_notification/pull/128)
75
+ * Fix uninitialized constant DeviseTokenAuth when *config.eager_load = true* - [#129](https://github.com/simukappu/activity_notification/issues/129)
76
+
77
+ ## 2.1.1 / 2020-02-11
78
+ [Full Changelog](http://github.com/simukappu/activity_notification/compare/v2.1.0...v2.1.1)
79
+
80
+ Bug Fixes:
81
+
82
+ * Fix eager_load by autoloading VERSION - [#124](https://github.com/simukappu/activity_notification/issues/124) [#125](https://github.com/simukappu/activity_notification/pull/125)
83
+
84
+ ## 2.1.0 / 2020-02-04
85
+ [Full Changelog](http://github.com/simukappu/activity_notification/compare/v2.0.0...v2.1.0)
86
+
87
+ Enhancements:
88
+
89
+ * Add API mode using notification and subscription API controllers - [#108](https://github.com/simukappu/activity_notification/issues/108) [#113](https://github.com/simukappu/activity_notification/issues/113)
90
+ * Add API controllers integrated with Devise Token Auth - [#108](https://github.com/simukappu/activity_notification/issues/108) [#113](https://github.com/simukappu/activity_notification/issues/113)
91
+ * Add sample single page application working with REST API backend - [#108](https://github.com/simukappu/activity_notification/issues/108) [#113](https://github.com/simukappu/activity_notification/issues/113)
92
+ * Move Action Cable broadcasting to optional targets - [#111](https://github.com/simukappu/activity_notification/issues/111)
93
+ * Add Action Cable API channels publishing formatted JSON - [#111](https://github.com/simukappu/activity_notification/issues/111)
94
+ * Rescue and skip error in optional_targets - [#103](https://github.com/simukappu/activity_notification/issues/103)
95
+ * Add *later_than* and *earlier_than* filter options to notification index API - [#108](https://github.com/simukappu/activity_notification/issues/108)
96
+ * Add key uniqueness validation to subscription model - [#119](https://github.com/simukappu/activity_notification/issues/119)
97
+ * Make mailer headers more configurable to set custom *from*, *reply_to* and *message_id* - [#116](https://github.com/simukappu/activity_notification/pull/116)
98
+ * Allow use and test with Rails 6.0 release - [#102](https://github.com/simukappu/activity_notification/issues/102)
99
+
100
+ Breaking Changes:
101
+
102
+ * Change HTTP POST method of open notification and subscription methods into PUT method
103
+ * Make *Target#open_all_notifications* return opened notification records instead of their count
104
+ * Make *Subscriber#create_subscription* raise *ActivityNotification::RecordInvalidError* when the request is invalid - [#119](https://github.com/simukappu/activity_notification/pull/119)
105
+
106
+ ## 2.0.0 / 2019-08-09
107
+ [Full Changelog](http://github.com/simukappu/activity_notification/compare/v1.7.1...v2.0.0)
108
+
109
+ Enhancements:
110
+
111
+ * Add push notification with Action Cable - [#101](https://github.com/simukappu/activity_notification/issues/101)
112
+ * Allow use with Rails 6.0 - [#102](https://github.com/simukappu/activity_notification/issues/102)
113
+ * Add Amazon DynamoDB support using Dynamoid
114
+ * Add *ActivityNotification.config.store_with_associated_records* option
115
+ * Add test case using Mongoid orm with ActiveRecord application
116
+ * Publish demo application on Heroku
117
+
118
+ Bug Fixes:
119
+
120
+ * Fix syntax error of a default view *_default_without_grouping.html.erb*
121
+
122
+ Deprecated:
123
+
124
+ * Remove deprecated *ActivityNotification.config.table_name* option
125
+
126
+ ## 1.7.1 / 2019-04-30
127
+ [Full Changelog](http://github.com/simukappu/activity_notification/compare/v1.7.0...v1.7.1)
128
+
129
+ Enhancements:
130
+
131
+ * Use after_commit for tracked callbacks instead of after_create and after_update - [#99](https://github.com/simukappu/activity_notification/issues/99)
132
+
133
+ ## 1.7.0 / 2018-12-09
134
+ [Full Changelog](http://github.com/simukappu/activity_notification/compare/v1.6.1...v1.7.0)
135
+
136
+ Enhancements:
137
+
138
+ * Support asynchronous notification API - [#29](https://github.com/simukappu/activity_notification/issues/29)
139
+
140
+ Bug Fixes:
141
+
142
+ * Fix migration generator to specify the Rails release in generated migration files for Rails 5.x - [#96](https://github.com/simukappu/activity_notification/issues/96)
143
+
144
+ Breaking Changes:
145
+
146
+ * Change method name of *Target#notify_to* into *Target#receive_notification_of* to avoid ambiguous method name with *Notifiable#notify_to* - [#88](https://github.com/simukappu/activity_notification/issues/88)
147
+
148
+ ## 1.6.1 / 2018-11-19
149
+ [Full Changelog](http://github.com/simukappu/activity_notification/compare/v1.6.0...v1.6.1)
150
+
151
+ Enhancements:
152
+
153
+ * Update README.md to describe how to customize email subject - [#93](https://github.com/simukappu/activity_notification/issues/93)
154
+
155
+ Bug Fixes:
156
+
157
+ * Fix *notify_all* method to handle single notifiable target models - [#88](https://github.com/simukappu/activity_notification/issues/88)
158
+
159
+ ## 1.6.0 / 2018-11-11
160
+ [Full Changelog](http://github.com/simukappu/activity_notification/compare/v1.5.1...v1.6.0)
161
+
162
+ Enhancements:
163
+
164
+ * Add simple default routes with devise integration - [#64](https://github.com/simukappu/activity_notification/issues/64)
165
+ * Add *:routing_scope* option to support routes with scope - [#56](https://github.com/simukappu/activity_notification/issues/56)
166
+
167
+ Bug Fixes:
168
+
169
+ * Update *Subscription.optional_targets* into HashWithIndifferentAccess to fix subscriptions with mongoid
170
+
171
+ ## 1.5.1 / 2018-08-26
172
+ [Full Changelog](http://github.com/simukappu/activity_notification/compare/v1.5.0...v1.5.1)
173
+
174
+ Enhancements:
175
+
176
+ * Allow configuration of custom mailer templates directory - [#32](https://github.com/simukappu/activity_notification/pull/32)
177
+ * Make Notifiable#notifiable_path to work when it is defined in a superclass - [#45](https://github.com/simukappu/activity_notification/pull/45)
178
+
179
+ Bug Fixes:
180
+
181
+ * Fix mongoid development dependency to work with bullet - [#72](https://github.com/simukappu/activity_notification/issues/72)
182
+ * Remove duplicate scope of filtered_by_type since it is also defined in API - [#78](https://github.com/simukappu/activity_notification/pull/78)
183
+ * Fix a bug in Subscriber concern about lack of arguments - [#80](https://github.com/simukappu/activity_notification/issues/80)
184
+
185
+ ## 1.5.0 / 2018-05-05
186
+ [Full Changelog](http://github.com/simukappu/activity_notification/compare/v1.4.4...v1.5.0)
187
+
188
+ Enhancements:
189
+
190
+ * Allow use with Rails 5.2
191
+ * Enhancements for using the gem with i18n
192
+ * Symbolize parameters for i18n interpolation
193
+ * Allow pluralization in i18n translation
194
+ * Update render method to use plain
195
+
196
+ Bug Fixes:
197
+
198
+ * Fix a doc bug for controllers template
199
+
1
200
  ## 1.4.4 / 2017-11-18
2
201
  [Full Changelog](http://github.com/simukappu/activity_notification/compare/v1.4.3...v1.4.4)
3
202
 
@@ -110,7 +309,7 @@ Bug Fixes:
110
309
 
111
310
  Breaking Changes:
112
311
 
113
- * Remove *notifiable_type* from the argument of overriden method or configured lambda function with *:batch_email_allowed* option in *acts_as_target* role
312
+ * Remove *notifiable_type* from the argument of overridden method or configured lambda function with *:batch_email_allowed* option in *acts_as_target* role
114
313
 
115
314
  ## 1.0.2 / 2016-11-14
116
315
  [Full Changelog](http://github.com/simukappu/activity_notification/compare/v1.0.1...v1.0.2)
data/Gemfile CHANGED
@@ -2,7 +2,17 @@ source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
4
 
5
- gem 'rails', '~> 5.1'
5
+ gem 'rails', '~> 7.0.0'
6
+
7
+ group :production do
8
+ gem 'sprockets-rails'
9
+ gem 'puma'
10
+ gem 'pg'
11
+ gem 'devise'
12
+ # gem 'devise_token_auth'
13
+ # https://github.com/lynndylanhurley/devise_token_auth/pull/1517
14
+ gem 'devise_token_auth', git: 'https://github.com/lynndylanhurley/devise_token_auth.git'
15
+ end
6
16
 
7
17
  group :development do
8
18
  gem 'bullet'
@@ -12,7 +22,12 @@ group :test do
12
22
  gem 'rails-controller-testing'
13
23
  gem 'ammeter'
14
24
  gem 'timecop'
15
- gem 'coveralls', require: false
25
+ gem 'committee'
26
+ gem 'committee-rails', '< 0.6'
27
+ # gem 'coveralls', require: false
28
+ gem 'coveralls_reborn', require: false
16
29
  end
17
30
 
31
+ gem 'webpacker', groups: [:production, :development]
32
+ gem 'rack-cors', groups: [:production, :development]
18
33
  gem 'dotenv-rails', groups: [:development, :test]
data/Procfile ADDED
@@ -0,0 +1,2 @@
1
+ web: cd spec/rails_app; bin/rails server -u Puma -p $PORT -e $RAILS_ENV; cd -
2
+ console: cd spec/rails_app; bin/rails console -e $RAILS_ENV; cd -