activity_notification 2.1.3 → 2.1.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 (44) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -1
  3. data/Gemfile +0 -2
  4. data/activity_notification.gemspec +1 -1
  5. data/docs/Functions.md +2 -2
  6. data/docs/Setup.md +176 -63
  7. data/gemfiles/Gemfile.rails-5.0 +1 -0
  8. data/gemfiles/Gemfile.rails-5.1 +1 -0
  9. data/gemfiles/Gemfile.rails-5.2 +1 -0
  10. data/gemfiles/Gemfile.rails-6.0 +0 -2
  11. data/lib/activity_notification/apis/notification_api.rb +7 -0
  12. data/lib/activity_notification/common.rb +4 -1
  13. data/lib/activity_notification/models/concerns/notifiable.rb +10 -10
  14. data/lib/activity_notification/models/concerns/swagger/notification_schema.rb +34 -34
  15. data/lib/activity_notification/models/concerns/swagger/subscription_schema.rb +17 -17
  16. data/lib/activity_notification/optional_targets/action_cable_api_channel.rb +1 -1
  17. data/lib/activity_notification/optional_targets/action_cable_channel.rb +1 -1
  18. data/lib/activity_notification/orm/dynamoid.rb +10 -3
  19. data/lib/activity_notification/orm/dynamoid/notification.rb +48 -13
  20. data/lib/activity_notification/orm/dynamoid/subscription.rb +1 -1
  21. data/lib/activity_notification/orm/mongoid.rb +10 -3
  22. data/lib/activity_notification/orm/mongoid/notification.rb +4 -4
  23. data/lib/activity_notification/roles/acts_as_notifiable.rb +2 -1
  24. data/lib/activity_notification/version.rb +1 -1
  25. data/spec/concerns/models/notifiable_spec.rb +35 -35
  26. data/spec/config_spec.rb +26 -15
  27. data/spec/rails_app/app/controllers/users_controller.rb +5 -0
  28. data/spec/rails_app/app/javascript/App.vue +8 -72
  29. data/spec/rails_app/app/javascript/components/DeviseTokenAuth.vue +3 -4
  30. data/spec/rails_app/app/javascript/components/Top.vue +2 -3
  31. data/spec/rails_app/app/javascript/packs/spa.js +6 -3
  32. data/spec/rails_app/app/javascript/router/index.js +73 -0
  33. data/spec/rails_app/app/javascript/store/{auth.js → index.js} +0 -0
  34. data/spec/rails_app/app/models/dummy/dummy_group.rb +8 -0
  35. data/spec/rails_app/app/models/dummy/dummy_notifiable_target.rb +8 -0
  36. data/spec/rails_app/app/models/user.rb +2 -1
  37. data/spec/rails_app/config/application.rb +4 -1
  38. data/spec/rails_app/config/dynamoid.rb +11 -3
  39. data/spec/rails_app/config/environments/production.rb +3 -0
  40. data/spec/rails_app/config/initializers/activity_notification.rb +3 -3
  41. data/spec/rails_app/config/routes.rb +5 -1
  42. data/spec/rails_app/db/seeds.rb +9 -2
  43. data/spec/roles/acts_as_notifiable_spec.rb +5 -5
  44. metadata +6 -10
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9a517c56b317fe1705d3666039793aee93ed55c77c2493b70018eb1da4268f97
4
- data.tar.gz: ba26afa004950dc8ec175abb6f36a948014f3ff7be81b8d185665f25f22137fe
3
+ metadata.gz: c77b0e25a955b70ea7753d4591e26eebaa5d8ac3ebd858fc0dbb1457a1443543
4
+ data.tar.gz: c3f39d43832aca955a9904cc9918ba247bc34b32fb5b9e2a99efdd11fb04fea5
5
5
  SHA512:
6
- metadata.gz: 88b587552a4c2e1bfeda92759b44f7611309409b3bfb11c7a777739a30e3af4f28f96d532b39c42edfed0b07de274239014d6d117590f51dc1ac09fc8898e8de
7
- data.tar.gz: c9e40bf9e14e6c5c0f4898161748e2ab07e9b1e95c8fbb2daaf151a5d94bab9727280f840216c7375819aac2f6564659d9fa9b05ce8a320dd2e3c7b42269acb3
6
+ metadata.gz: 4ff3b5496a2f94cdc794c5fac124cdeb749738eb3b244f58e4622882dfbfdcddeb35518f41d7f801ad0f4c47d8695cc4c157e6d4244ae394fc2797f08f20a826
7
+ data.tar.gz: 93cf90f670ebca89d40812870f2e4ad526f5f373609a56ece0199ef50f63383204bd624a1e3af3ac65f31d431494fdac19a7c5b1bc62887fd20c961a3cb8daa2
@@ -1,4 +1,16 @@
1
- ## 2.1.3 / 2020-08-1
1
+ ## 2.1.4 / 2020-11-07
2
+ [Full Changelog](http://github.com/simukappu/activity_notification/compare/v2.1.3...v2.1.4)
3
+
4
+ Enhancements:
5
+
6
+ * 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)
7
+
8
+ Bug Fixes:
9
+
10
+ * 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)
11
+ * Fix hash syntax in swagger schemas - [#146](https://github.com/simukappu/activity_notification/issues/146) [#147](https://github.com/simukappu/activity_notification/pull/147)
12
+
13
+ ## 2.1.3 / 2020-08-11
2
14
  [Full Changelog](http://github.com/simukappu/activity_notification/compare/v2.1.2...v2.1.3)
3
15
 
4
16
  Enhancements:
data/Gemfile CHANGED
@@ -16,8 +16,6 @@ group :development do
16
16
  end
17
17
 
18
18
  group :test do
19
- #TODO https://github.com/rails/rails/issues/35417
20
- gem 'rspec-rails', '4.0.0.beta4'
21
19
  gem 'rails-controller-testing'
22
20
  gem 'ammeter'
23
21
  gem 'timecop'
@@ -31,7 +31,7 @@ Gem::Specification.new do |s|
31
31
  s.add_development_dependency 'pg', '>= 1.0.0'
32
32
  s.add_development_dependency 'mongoid', '>= 4.0.0'
33
33
  s.add_development_dependency 'dynamoid', '3.1.0'
34
- s.add_development_dependency 'rspec-rails', '>= 3.8.0', '< 4.0.0'
34
+ s.add_development_dependency 'rspec-rails', '>= 3.8.0'
35
35
  s.add_development_dependency 'factory_bot_rails', '>= 4.11.0', '< 5.0.0'
36
36
  s.add_development_dependency 'simplecov', '~> 0'
37
37
  s.add_development_dependency 'yard', '>= 0.9.16'
@@ -65,9 +65,9 @@ config.mailer_sender = ->(key){ key == 'inquiry.post' ? 'support@example.com' :
65
65
 
66
66
  #### Email templates
67
67
 
68
- *activity_notification* will look for email template in a similar way as notification views, but the view file name is not start with an underscore. For example, if you have a notification with *:key* set to *"notification.comment.reply"* and target_type *users*, the gem will look for a partial in *app/views/activity_notification/mailer/users/comment/reply.html.(|erb|haml|slim|something_else)*.
68
+ *activity_notification* will look for email template in a similar way as notification views, but the view file name does not start with an underscore. For example, if you have a notification with *:key* set to *"notification.comment.reply"* and target_type *users*, the gem will look for a partial in *app/views/activity_notification/mailer/users/comment/reply.html.(|erb|haml|slim|something_else)*.
69
69
 
70
- If this template is missing, the gem will look for a partial in *default* as the target type which means *activity_notification/mailer/default/_default.html.(|erb|haml|slim|something_else)*.
70
+ If this template is missing, the gem will use *default* as the target type which means *activity_notification/mailer/default/default.html.(|erb|haml|slim|something_else)*.
71
71
 
72
72
  #### Email subject
73
73
 
@@ -109,76 +109,189 @@ When **store_with_associated_records** is set to *false* as default, *activity_n
109
109
 
110
110
  ```json
111
111
  {
112
- "id": {
113
- "S": "f05756ef-661e-4ef5-9e99-5af51243125c"
114
- },
115
- "target_key": {
116
- "S": "User#1"
117
- },
118
- "notifiable_key": {
119
- "S": "Comment#2"
120
- },
121
- "key": {
122
- "S": "comment.default"
123
- },
124
- "group_key": {
125
- "S": "Article#1"
126
- },
127
- "notifier_key": {
128
- "S": "User#2"
129
- },
130
- "created_at": {
131
- "N": "1560085332.689929"
132
- },
133
- "updated_at": {
134
- "N": "1560085332.695515"
135
- },
136
- "parameters": {
137
- "M": {}
138
- }
112
+ "id": {
113
+ "S": "f05756ef-661e-4ef5-9e99-5af51243125c"
114
+ },
115
+ "target_key": {
116
+ "S": "User#1"
117
+ },
118
+ "notifiable_key": {
119
+ "S": "Comment#2"
120
+ },
121
+ "key": {
122
+ "S": "comment.default"
123
+ },
124
+ "group_key": {
125
+ "S": "Article#1"
126
+ },
127
+ "notifier_key": {
128
+ "S": "User#2"
129
+ },
130
+ "created_at": {
131
+ "S": "2020-03-08T08:22:53+00:00"
132
+ },
133
+ "updated_at": {
134
+ "S": "2020-03-08T08:22:53+00:00"
135
+ },
136
+ "parameters": {
137
+ "M": {}
138
+ }
139
139
  }
140
140
  ```
141
141
 
142
- When you set **store_with_associated_records** to *true*, *activity_notification* stores notificaion records including associated target, notifiable and notifier like this:
142
+ When you set **store_with_associated_records** to *true*, *activity_notification* stores notificaion records including associated target, notifiable, notifier and several instance methods like this:
143
143
 
144
144
  ```json
145
145
  {
146
- "id": {
147
- "S": "f05756ef-661e-4ef5-9e99-5af51243125c"
148
- },
149
- "target_key": {
150
- "S": "User#1"
151
- },
152
- "target_record": {
153
- "S": "{\"id\":1,\"email\":\"ichiro@example.com\",\"name\":\"Ichiro\",\"created_at\":\"2019-06-09T13:10:44.853Z\",\"updated_at\":\"2019-06-09T13:10:44.853Z\"}"
154
- },
155
- "notifiable_key": {
156
- "S": "Comment#2"
157
- },
158
- "notifiable_record": {
159
- "S": "{\"id\":2,\"user_id\":2,\"article_id\":1,\"body\":\"This is the first Stephen's comment to Ichiro's article.\",\"created_at\":\"2019-06-09T13:10:45.677Z\",\"updated_at\":\"2019-06-09T13:10:45.677Z\"}"
160
- },
161
- "key": {
162
- "S": "comment.default"
163
- },
164
- "group_key": {
165
- "S": "Article#1"
166
- },
167
- "notifier_key": {
168
- "S": "User#2"
169
- },
170
- "notifier_record": {
171
- "S": "{\"id\":2,\"email\":\"stephen@example.com\",\"name\":\"Stephen\",\"created_at\":\"2019-06-09T13:10:45.006Z\",\"updated_at\":\"2019-06-09T13:10:45.006Z\"}"
172
- },
173
- "created_at": {
174
- "N": "1560085332.689929"
175
- },
176
- "updated_at": {
177
- "N": "1560085332.695515"
178
- },
179
- "parameters": {
180
- "M": {}
146
+ "id": {
147
+ "S": "f05756ef-661e-4ef5-9e99-5af51243125c"
148
+ },
149
+ "target_key": {
150
+ "S": "User#1"
151
+ },
152
+ "notifiable_key": {
153
+ "S": "Comment#2"
154
+ },
155
+ "key": {
156
+ "S": "comment.default"
157
+ },
158
+ "group_key": {
159
+ "S": "Article#1"
160
+ },
161
+ "notifier_key": {
162
+ "S": "User#2"
163
+ },
164
+ "created_at": {
165
+ "S": "2020-03-08T08:22:53+00:00"
166
+ },
167
+ "updated_at": {
168
+ "S": "2020-03-08T08:22:53+00:00"
169
+ },
170
+ "parameters": {
171
+ "M": {}
172
+ },
173
+ "stored_target": {
174
+ "M": {
175
+ "id": {
176
+ "N": "1"
177
+ },
178
+ "email": {
179
+ "S": "ichiro@example.com"
180
+ },
181
+ "name": {
182
+ "S": "Ichiro"
183
+ },
184
+ "created_at": {
185
+ "S": "2020-03-08T08:22:23.451Z"
186
+ },
187
+ "updated_at": {
188
+ "S": "2020-03-08T08:22:23.451Z"
189
+ },
190
+ // { ... },
191
+ "printable_type": {
192
+ "S": "User"
193
+ },
194
+ "printable_target_name": {
195
+ "S": "Ichiro"
196
+ },
197
+ }
198
+ },
199
+ "stored_notifiable": {
200
+ "M": {
201
+ "id": {
202
+ "N": "2"
203
+ },
204
+ "user_id": {
205
+ "N": "2"
206
+ },
207
+ "article_id": {
208
+ "N": "1"
209
+ },
210
+ "body": {
211
+ "S": "This is the first Stephen's comment to Ichiro's article."
212
+ },
213
+ "created_at": {
214
+ "S": "2020-03-08T08:22:47.683Z"
215
+ },
216
+ "updated_at": {
217
+ "S": "2020-03-08T08:22:47.683Z"
218
+ },
219
+ "printable_type": {
220
+ "S": "Comment"
221
+ }
222
+ }
223
+ },
224
+ "stored_notifier": {
225
+ "M": {
226
+ "id": {
227
+ "N": "2"
228
+ },
229
+ "email": {
230
+ "S": "stephen@example.com"
231
+ },
232
+ "name": {
233
+ "S": "Stephen"
234
+ },
235
+ "created_at": {
236
+ "S": "2020-03-08T08:22:23.573Z"
237
+ },
238
+ "updated_at": {
239
+ "S": "2020-03-08T08:22:23.573Z"
240
+ },
241
+ // { ... },
242
+ "printable_type": {
243
+ "S": "User"
244
+ },
245
+ "printable_notifier_name": {
246
+ "S": "Stephen"
247
+ }
248
+ }
249
+ },
250
+ "stored_group": {
251
+ "M": {
252
+ "id": {
253
+ "N": "1"
254
+ },
255
+ "user_id": {
256
+ "N": "1"
257
+ },
258
+ "title": {
259
+ "S": "Ichiro's first article"
260
+ },
261
+ "body": {
262
+ "S": "This is the first Ichiro's article. Please read it!"
263
+ },
264
+ "created_at": {
265
+ "S": "2020-03-08T08:22:23.952Z"
266
+ },
267
+ "updated_at": {
268
+ "S": "2020-03-08T08:22:23.952Z"
269
+ },
270
+ "printable_type": {
271
+ "S": "Article"
272
+ },
273
+ "printable_group_name": {
274
+ "S": "article \"Ichiro's first article\""
275
+ }
181
276
  }
277
+ },
278
+ "stored_notifiable_path": {
279
+ "S": "/articles/1"
280
+ },
281
+ "stored_printable_notifiable_name": {
282
+ "S": "comment \"This is the first Stephen's comment to Ichiro's article.\""
283
+ },
284
+ "stored_group_member_notifier_count": {
285
+ "N": "2"
286
+ },
287
+ "stored_group_notification_count": {
288
+ "N": "3"
289
+ },
290
+ "stored_group_members": {
291
+ "L": [
292
+ // { ... }, { ... }, ...
293
+ ]
294
+ }
182
295
  }
183
296
  ```
184
297
 
@@ -11,6 +11,7 @@ group :development do
11
11
  end
12
12
 
13
13
  group :test do
14
+ gem 'rspec-rails', '< 4.0.0'
14
15
  gem 'rails-controller-testing'
15
16
  gem 'action-cable-testing'
16
17
  gem 'ammeter'
@@ -10,6 +10,7 @@ group :development do
10
10
  end
11
11
 
12
12
  group :test do
13
+ gem 'rspec-rails', '< 4.0.0'
13
14
  gem 'rails-controller-testing'
14
15
  gem 'action-cable-testing'
15
16
  gem 'ammeter'
@@ -10,6 +10,7 @@ group :development do
10
10
  end
11
11
 
12
12
  group :test do
13
+ gem 'rspec-rails', '< 4.0.0'
13
14
  gem 'rails-controller-testing'
14
15
  gem 'action-cable-testing'
15
16
  gem 'ammeter'
@@ -10,8 +10,6 @@ group :development do
10
10
  end
11
11
 
12
12
  group :test do
13
- #TODO https://github.com/rails/rails/issues/35417
14
- gem 'rspec-rails', '4.0.0.beta4'
15
13
  gem 'rails-controller-testing'
16
14
  gem 'ammeter'
17
15
  gem 'timecop'
@@ -495,16 +495,23 @@ module ActivityNotification
495
495
 
496
496
  notification = new({ target: target, notifiable: notifiable, key: key, group: group, parameters: parameters, notifier: notifier, group_owner: group_owner })
497
497
  notification.prepare_to_store.save
498
+ notification.after_store
498
499
  notification
499
500
  end
500
501
  end
501
502
 
503
+ # :nocov:
502
504
  # Returns prepared notification object to store
503
505
  # @return [Object] prepared notification object to store
504
506
  def prepare_to_store
505
507
  self
506
508
  end
507
509
 
510
+ # Call after store action with stored notification
511
+ def after_store
512
+ end
513
+ # :nocov:
514
+
508
515
  # Sends notification email to the target.
509
516
  #
510
517
  # @param [Hash] options Options for notification email
@@ -98,9 +98,12 @@ module ActivityNotification
98
98
  end
99
99
 
100
100
  # Convets to class name.
101
+ # This function returns base_class name for STI models if the class responds to base_class method.
102
+ # @see https://github.com/simukappu/activity_notification/issues/89
103
+ # @see https://github.com/simukappu/activity_notification/pull/139
101
104
  # @return [String] Class name
102
105
  def to_class_name
103
- self.class.name
106
+ self.class.respond_to?(:base_class) ? self.class.base_class.name : self.class.name
104
107
  end
105
108
 
106
109
  # Convets to singularized model name (resource name).
@@ -25,8 +25,8 @@ module ActivityNotification
25
25
  :_notifier,
26
26
  :_notification_parameters,
27
27
  :_notification_email_allowed,
28
- :_notification_action_cable_allowed,
29
- :_notification_action_cable_api_allowed,
28
+ :_notifiable_action_cable_allowed,
29
+ :_notifiable_action_cable_api_allowed,
30
30
  :_notifiable_path,
31
31
  :_printable_notifiable_name,
32
32
  :_optional_targets
@@ -55,8 +55,8 @@ module ActivityNotification
55
55
  self._notifier = {}
56
56
  self._notification_parameters = {}
57
57
  self._notification_email_allowed = {}
58
- self._notification_action_cable_allowed = {}
59
- self._notification_action_cable_api_allowed = {}
58
+ self._notifiable_action_cable_allowed = {}
59
+ self._notifiable_action_cable_api_allowed = {}
60
60
  self._notifiable_path = {}
61
61
  self._printable_notifiable_name = {}
62
62
  self._optional_targets = {}
@@ -162,10 +162,10 @@ module ActivityNotification
162
162
  # @param [Object] target Target instance to notify
163
163
  # @param [String] key Key of the notification
164
164
  # @return [Boolean] If publishing WebSocket using ActionCable is allowed for the notifiable
165
- def notification_action_cable_allowed?(target, key = nil)
165
+ def notifiable_action_cable_allowed?(target, key = nil)
166
166
  resolve_parameter(
167
- "notification_action_cable_allowed_for_#{cast_to_resources_name(target.class)}?",
168
- _notification_action_cable_allowed[cast_to_resources_sym(target.class)],
167
+ "notifiable_action_cable_allowed_for_#{cast_to_resources_name(target.class)}?",
168
+ _notifiable_action_cable_allowed[cast_to_resources_sym(target.class)],
169
169
  ActivityNotification.config.action_cable_enabled,
170
170
  target, key)
171
171
  end
@@ -176,10 +176,10 @@ module ActivityNotification
176
176
  # @param [Object] target Target instance to notify
177
177
  # @param [String] key Key of the notification
178
178
  # @return [Boolean] If publishing WebSocket API using ActionCable is allowed for the notifiable
179
- def notification_action_cable_api_allowed?(target, key = nil)
179
+ def notifiable_action_cable_api_allowed?(target, key = nil)
180
180
  resolve_parameter(
181
- "notification_action_cable_api_allowed_for_#{cast_to_resources_name(target.class)}?",
182
- _notification_action_cable_api_allowed[cast_to_resources_sym(target.class)],
181
+ "notifiable_action_cable_api_allowed_for_#{cast_to_resources_name(target.class)}?",
182
+ _notifiable_action_cable_api_allowed[cast_to_resources_sym(target.class)],
183
183
  ActivityNotification.config.action_cable_api_enabled,
184
184
  target, key)
185
185
  end
@@ -90,7 +90,7 @@ module ActivityNotification
90
90
  type: :string
91
91
  }
92
92
  key :example, {
93
- "test_default_param": "1"
93
+ test_default_param: "1"
94
94
  }
95
95
  end
96
96
  property :opened_at do
@@ -139,28 +139,28 @@ module ActivityNotification
139
139
  key :type, :object
140
140
  key :description, "Associated target model in your application"
141
141
  key :example, {
142
- "id": 1,
143
- "email": "ichiro@example.com",
144
- "name": "Ichiro",
145
- "created_at": Time.current,
146
- "updated_at": Time.current,
147
- "provider": "email",
148
- "uid": "",
149
- "printable_type": "User",
150
- "printable_target_name": "Ichiro"
142
+ id: 1,
143
+ email: "ichiro@example.com",
144
+ name: "Ichiro",
145
+ created_at: Time.current,
146
+ updated_at: Time.current,
147
+ provider: "email",
148
+ uid: "",
149
+ printable_type: "User",
150
+ printable_target_name: "Ichiro"
151
151
  }
152
152
  end
153
153
  property :notifiable do
154
154
  key :type, :object
155
155
  key :description, "Associated notifiable model in your application"
156
156
  key :example, {
157
- "id": 22,
158
- "user_id": 2,
159
- "article_id": 11,
160
- "body": "This is the first Stephen's comment to Ichiro's article.",
161
- "created_at": Time.current,
162
- "updated_at": Time.current,
163
- "printable_type": "Comment"
157
+ id: 22,
158
+ user_id: 2,
159
+ article_id: 11,
160
+ body: "This is the first Stephen's comment to Ichiro's article.",
161
+ created_at: Time.current,
162
+ updated_at: Time.current,
163
+ printable_type: "Comment"
164
164
  }
165
165
  end
166
166
  property :group do
@@ -168,14 +168,14 @@ module ActivityNotification
168
168
  key :description, "Associated group model in your application"
169
169
  key :nullable, true
170
170
  key :example, {
171
- "id": 11,
172
- "user_id": 4,
173
- "title": "Ichiro's great article",
174
- "body": "This is Ichiro's great article. Please read it!",
175
- "created_at": Time.current,
176
- "updated_at": Time.current,
177
- "printable_type": "Article",
178
- "printable_group_name": "article \"Ichiro's great article\""
171
+ id: 11,
172
+ user_id: 4,
173
+ title: "Ichiro's great article",
174
+ body: "This is Ichiro's great article. Please read it!",
175
+ created_at: Time.current,
176
+ updated_at: Time.current,
177
+ printable_type: "Article",
178
+ printable_group_name: "article \"Ichiro's great article\""
179
179
  }
180
180
  end
181
181
  property :notifier do
@@ -183,15 +183,15 @@ module ActivityNotification
183
183
  key :description, "Associated notifier model in your application"
184
184
  key :nullable, true
185
185
  key :example, {
186
- "id": 2,
187
- "email": "stephen@example.com",
188
- "name": "Stephen",
189
- "created_at": Time.current,
190
- "updated_at": Time.current,
191
- "provider": "email",
192
- "uid": "",
193
- "printable_type": "User",
194
- "printable_notifier_name": "Stephen"
186
+ id: 2,
187
+ email: "stephen@example.com",
188
+ name: "Stephen",
189
+ created_at: Time.current,
190
+ updated_at: Time.current,
191
+ provider: "email",
192
+ uid: "",
193
+ printable_type: "User",
194
+ printable_notifier_name: "Stephen"
195
195
  }
196
196
  end
197
197
  property :group_members do