activity_notification 1.4.4 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +26 -20
- data/CHANGELOG.md +15 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +93 -85
- data/README.md +44 -8
- data/activity_notification.gemspec +6 -6
- data/gemfiles/Gemfile.rails-4.2 +2 -0
- data/gemfiles/Gemfile.rails-4.2.lock +41 -41
- data/gemfiles/Gemfile.rails-5.0.lock +75 -75
- data/gemfiles/Gemfile.rails-5.1.lock +80 -80
- data/gemfiles/Gemfile.rails-5.2 +18 -0
- data/gemfiles/Gemfile.rails-5.2.lock +242 -0
- data/lib/activity_notification/renderable.rb +9 -5
- data/lib/activity_notification/version.rb +1 -1
- data/lib/generators/templates/controllers/README +2 -2
- data/scripts/bundle_update.sh +7 -0
- data/spec/concerns/models/target_spec.rb +6 -32
- data/spec/concerns/renderable_spec.rb +34 -15
- data/spec/helpers/view_helpers_spec.rb +15 -0
- data/spec/mailers/mailer_spec.rb +1 -1
- data/spec/rails_app/config/application.rb +3 -0
- data/spec/rails_app/config/locales/activity_notification.en.yml +7 -3
- data/spec/rails_app/lib/mailer_previews/mailer_preview.rb +1 -1
- data/spec/roles/acts_as_notifiable_spec.rb +14 -12
- metadata +17 -14
@@ -8,7 +8,7 @@ module ActivityNotification
|
|
8
8
|
#
|
9
9
|
# @param [Hash] params Parameters for rendering notification text
|
10
10
|
# @option params [String] :target Target type name to use as i18n text key
|
11
|
-
# @option params [Hash] others Parameters to be
|
11
|
+
# @option params [Hash] others Parameters to be referred in i18n text
|
12
12
|
# @return [String] Rendered text
|
13
13
|
def text(params = {})
|
14
14
|
k = key.split('.')
|
@@ -21,12 +21,16 @@ module ActivityNotification
|
|
21
21
|
k.push('text')
|
22
22
|
k = k.join('.')
|
23
23
|
|
24
|
-
|
24
|
+
attrs = (parameters.symbolize_keys.merge(params) || {}).merge(
|
25
25
|
group_member_count: group_member_count,
|
26
26
|
group_notification_count: group_notification_count,
|
27
27
|
group_member_notifier_count: group_member_notifier_count,
|
28
28
|
group_notifier_count: group_notifier_count
|
29
|
-
)
|
29
|
+
)
|
30
|
+
|
31
|
+
# Generate the :default fallback key without using pluralization key :count
|
32
|
+
default = I18n.t(k, attrs)
|
33
|
+
I18n.t(k, attrs.merge(count: group_notification_count, default: default))
|
30
34
|
end
|
31
35
|
|
32
36
|
# Renders notification from views.
|
@@ -88,7 +92,7 @@ module ActivityNotification
|
|
88
92
|
# <%= yield %>
|
89
93
|
#
|
90
94
|
# == Custom Layout Location
|
91
|
-
#
|
95
|
+
#
|
92
96
|
# You can customize the layout directory by supplying :layout_root
|
93
97
|
# or by using an absolute path.
|
94
98
|
#
|
@@ -142,7 +146,7 @@ module ActivityNotification
|
|
142
146
|
# @option params [Hash] others Parameters to be set as locals
|
143
147
|
# @return [String] Rendered view or text as string
|
144
148
|
def render(context, params = {})
|
145
|
-
params[:i18n] and return context.render
|
149
|
+
params[:i18n] and return context.render plain: self.text(params)
|
146
150
|
|
147
151
|
partial = partial_path(*params.values_at(:partial, :partial_root, :target))
|
148
152
|
layout = layout_path(*params.values_at(:layout, :layout_root))
|
@@ -6,8 +6,8 @@ Some setup you must do manually if you haven't yet:
|
|
6
6
|
For example:
|
7
7
|
|
8
8
|
Rails.application.routes.draw do
|
9
|
-
notify_to :users,
|
10
|
-
notify_to :admins, with_devise: :users,
|
9
|
+
notify_to :users, controller: 'users/notifications'
|
10
|
+
notify_to :admins, with_devise: :users, controller: 'admins/notifications_with_devise'
|
11
11
|
end
|
12
12
|
|
13
13
|
===============================================================================
|
@@ -924,18 +924,8 @@ shared_examples_for :target do
|
|
924
924
|
end
|
925
925
|
|
926
926
|
if ActivityNotification.config.orm == :active_record
|
927
|
-
it "calls with_target, with_notifiable and
|
928
|
-
expect(
|
929
|
-
expect(ActiveRecord::Base).to receive(:includes).with(:notifiable)
|
930
|
-
expect(ActiveRecord::Base).to receive(:includes).with(:notifier)
|
931
|
-
test_instance.unopened_notification_index_with_attributes
|
932
|
-
end
|
933
|
-
|
934
|
-
it "does not call with_group" do
|
935
|
-
expect(ActiveRecord::Base).to receive(:includes).with(:target)
|
936
|
-
expect(ActiveRecord::Base).to receive(:includes).with(:notifiable)
|
937
|
-
expect(ActiveRecord::Base).not_to receive(:includes).with(:group)
|
938
|
-
expect(ActiveRecord::Base).to receive(:includes).with(:notifier)
|
927
|
+
it "calls with_target, with_notifiable, with_notifier and does not call with_group" do
|
928
|
+
expect(ActivityNotification::Notification).to receive_message_chain(:with_target, :with_notifiable, :with_notifier)
|
939
929
|
test_instance.unopened_notification_index_with_attributes
|
940
930
|
end
|
941
931
|
end
|
@@ -950,10 +940,7 @@ shared_examples_for :target do
|
|
950
940
|
|
951
941
|
if ActivityNotification.config.orm == :active_record
|
952
942
|
it "calls with_group" do
|
953
|
-
expect(
|
954
|
-
expect(ActiveRecord::Base).to receive(:includes).with(:notifiable)
|
955
|
-
expect(ActiveRecord::Base).to receive(:includes).with(:group)
|
956
|
-
expect(ActiveRecord::Base).to receive(:includes).with(:notifier)
|
943
|
+
expect(ActivityNotification::Notification).to receive_message_chain(:with_target, :with_notifiable, :with_group, :with_notifier)
|
957
944
|
test_instance.unopened_notification_index_with_attributes
|
958
945
|
end
|
959
946
|
end
|
@@ -986,18 +973,8 @@ shared_examples_for :target do
|
|
986
973
|
end
|
987
974
|
|
988
975
|
if ActivityNotification.config.orm == :active_record
|
989
|
-
it "calls with_target, with_notifiable and
|
990
|
-
expect(
|
991
|
-
expect(ActiveRecord::Base).to receive(:includes).with(:notifiable)
|
992
|
-
expect(ActiveRecord::Base).to receive(:includes).with(:notifier)
|
993
|
-
test_instance.opened_notification_index_with_attributes
|
994
|
-
end
|
995
|
-
|
996
|
-
it "does not call with_group" do
|
997
|
-
expect(ActiveRecord::Base).to receive(:includes).with(:target)
|
998
|
-
expect(ActiveRecord::Base).to receive(:includes).with(:notifiable)
|
999
|
-
expect(ActiveRecord::Base).not_to receive(:includes).with(:group)
|
1000
|
-
expect(ActiveRecord::Base).to receive(:includes).with(:notifier)
|
976
|
+
it "calls with_target, with_notifiable, with_notifier and does not call with_group" do
|
977
|
+
expect(ActivityNotification::Notification).to receive_message_chain(:with_target, :with_notifiable, :with_notifier)
|
1001
978
|
test_instance.opened_notification_index_with_attributes
|
1002
979
|
end
|
1003
980
|
end
|
@@ -1012,10 +989,7 @@ shared_examples_for :target do
|
|
1012
989
|
|
1013
990
|
if ActivityNotification.config.orm == :active_record
|
1014
991
|
it "calls with_group" do
|
1015
|
-
expect(
|
1016
|
-
expect(ActiveRecord::Base).to receive(:includes).with(:notifiable)
|
1017
|
-
expect(ActiveRecord::Base).to receive(:includes).with(:group)
|
1018
|
-
expect(ActiveRecord::Base).to receive(:includes).with(:notifier)
|
992
|
+
expect(ActivityNotification::Notification).to receive_message_chain(:with_target, :with_notifiable, :with_group, :with_notifier)
|
1019
993
|
test_instance.opened_notification_index_with_attributes
|
1020
994
|
end
|
1021
995
|
end
|
@@ -4,17 +4,23 @@ shared_examples_for :renderable do
|
|
4
4
|
let(:test_instance) { create(test_class_name, target: test_target) }
|
5
5
|
let(:target_type_key) { 'user' }
|
6
6
|
|
7
|
-
let(:notifier_name)
|
8
|
-
let(:article_title)
|
9
|
-
let(:
|
10
|
-
let(:
|
11
|
-
let(:
|
12
|
-
let(:
|
13
|
-
let(:
|
14
|
-
let(:
|
15
|
-
let(:
|
16
|
-
let(:
|
17
|
-
let(:
|
7
|
+
let(:notifier_name) { 'foo' }
|
8
|
+
let(:article_title) { 'bar' }
|
9
|
+
let(:group_notification_count) { 4 }
|
10
|
+
let(:group_member_count) { 3 }
|
11
|
+
let(:simple_text_key) { 'article.create' }
|
12
|
+
let(:params_text_key) { 'article.update' }
|
13
|
+
let(:group_text_key) { 'comment.reply' }
|
14
|
+
let(:plural_text_key) { 'comment.post' }
|
15
|
+
let(:simple_text_original) { 'Article has been created' }
|
16
|
+
let(:params_text_original) { "Article %{article_title} has been updated" }
|
17
|
+
let(:plural_text_original_one) { "<p>%{notifier_name} posted a comment on your article %{article_title}</p>" }
|
18
|
+
let(:plural_text_original_other) { "<p>%{notifier_name} posted %{count} comments on your article %{article_title}</p>" }
|
19
|
+
let(:group_text_original) { "<p>%{notifier_name} and %{group_member_count} other people replied %{group_notification_count} times to your comment</p>" }
|
20
|
+
let(:params_text_embedded) { "Article bar has been updated" }
|
21
|
+
let(:group_text_embedded) { "<p>foo and 3 other people replied 4 times to your comment</p>" }
|
22
|
+
let(:plural_text_embedded_one) { "<p>foo posted a comment on your article bar</p>" }
|
23
|
+
let(:plural_text_embedded_other) { "<p>foo posted 4 comments on your article bar</p>" }
|
18
24
|
|
19
25
|
describe "i18n configuration" do
|
20
26
|
it "has key configured for simple text" do
|
@@ -26,17 +32,30 @@ shared_examples_for :renderable do
|
|
26
32
|
expect(I18n.t("notification.#{target_type_key}.#{params_text_key}.text"))
|
27
33
|
.to eq(params_text_original)
|
28
34
|
expect(I18n.t("notification.#{target_type_key}.#{params_text_key}.text",
|
29
|
-
{
|
35
|
+
{article_title: article_title}))
|
30
36
|
.to eq(params_text_embedded)
|
31
37
|
end
|
32
38
|
|
33
|
-
it "has key configured with embedded params including group_member_count" do
|
39
|
+
it "has key configured with embedded params including group_member_count and group_notification_count" do
|
34
40
|
expect(I18n.t("notification.#{target_type_key}.#{group_text_key}.text"))
|
35
41
|
.to eq(group_text_original)
|
36
42
|
expect(I18n.t("notification.#{target_type_key}.#{group_text_key}.text",
|
37
|
-
{notifier_name: notifier_name, group_member_count: group_member_count}))
|
43
|
+
{notifier_name: notifier_name, group_member_count: group_member_count, group_notification_count: group_notification_count}))
|
38
44
|
.to eq(group_text_embedded)
|
39
45
|
end
|
46
|
+
|
47
|
+
it "has key configured with plurals" do
|
48
|
+
expect(I18n.t("notification.#{target_type_key}.#{plural_text_key}.text")[:one])
|
49
|
+
.to eq(plural_text_original_one)
|
50
|
+
expect(I18n.t("notification.#{target_type_key}.#{plural_text_key}.text")[:other])
|
51
|
+
.to eq(plural_text_original_other)
|
52
|
+
expect(I18n.t("notification.#{target_type_key}.#{plural_text_key}.text",
|
53
|
+
{article_title: article_title, notifier_name: notifier_name, count: 1}))
|
54
|
+
.to eq(plural_text_embedded_one)
|
55
|
+
expect(I18n.t("notification.#{target_type_key}.#{plural_text_key}.text",
|
56
|
+
{article_title: article_title, notifier_name: notifier_name, count: group_notification_count}))
|
57
|
+
.to eq(plural_text_embedded_other)
|
58
|
+
end
|
40
59
|
end
|
41
60
|
|
42
61
|
describe "as public instance methods" do
|
@@ -83,7 +102,7 @@ shared_examples_for :renderable do
|
|
83
102
|
context "when the text has embedded parameters" do
|
84
103
|
it "uses text with embedded parameters" do
|
85
104
|
test_instance.key = params_text_key
|
86
|
-
expect(test_instance.text({
|
105
|
+
expect(test_instance.text({article_title: article_title}))
|
87
106
|
.to eq(params_text_embedded)
|
88
107
|
end
|
89
108
|
|
@@ -67,6 +67,21 @@ describe ActivityNotification::ViewHelpers, type: :helper do
|
|
67
67
|
expect(render_notification notification, fallback: :text)
|
68
68
|
.to eq(simple_text_original)
|
69
69
|
end
|
70
|
+
|
71
|
+
it "interpolates from parameters" do
|
72
|
+
notification.parameters = { "article_title" => "custom title" }
|
73
|
+
notification.key = 'article.update'
|
74
|
+
expect(render_notification notification, fallback: :text)
|
75
|
+
.to eq("Article custom title has been updated")
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
context "with i18n param set" do
|
80
|
+
it "uses i18n text from key" do
|
81
|
+
notification.key = simple_text_key
|
82
|
+
expect(render_notification notification, i18n: true)
|
83
|
+
.to eq(simple_text_original)
|
84
|
+
end
|
70
85
|
end
|
71
86
|
|
72
87
|
context "with custom view" do
|
data/spec/mailers/mailer_spec.rb
CHANGED
@@ -84,7 +84,7 @@ describe ActivityNotification::Mailer do
|
|
84
84
|
notification.notifiable.extend(AdditionalMethods)
|
85
85
|
ActivityNotification::Mailer.send_notification_email(notification).deliver_now
|
86
86
|
expect(ActivityNotification::Mailer.deliveries.last.subject)
|
87
|
-
.to eq("New comment
|
87
|
+
.to eq("New comment on your article")
|
88
88
|
end
|
89
89
|
end
|
90
90
|
|
@@ -28,6 +28,9 @@ module Dummy
|
|
28
28
|
if Rails::VERSION::MAJOR == 4 && Rails::VERSION::MINOR >= 2 && ENV['AN_TEST_DB'] != 'mongodb'
|
29
29
|
config.active_record.raise_in_transactional_callbacks = true
|
30
30
|
end
|
31
|
+
if Rails::VERSION::MAJOR >= 5 && Rails::VERSION::MINOR >= 2 && ENV['AN_TEST_DB'] != 'mongodb'
|
32
|
+
config.active_record.sqlite3.represent_boolean_as_integer = true
|
33
|
+
end
|
31
34
|
end
|
32
35
|
end
|
33
36
|
|
@@ -6,14 +6,18 @@ en:
|
|
6
6
|
article:
|
7
7
|
create:
|
8
8
|
text: 'Article has been created'
|
9
|
+
update:
|
10
|
+
text: 'Article %{article_title} has been updated'
|
9
11
|
destroy:
|
10
12
|
text: 'Some user removed an article!'
|
11
13
|
comment:
|
12
14
|
post:
|
13
|
-
text:
|
15
|
+
text:
|
16
|
+
one: "<p>%{notifier_name} posted a comment on your article %{article_title}</p>"
|
17
|
+
other: "<p>%{notifier_name} posted %{count} comments on your article %{article_title}</p>"
|
14
18
|
reply:
|
15
|
-
text: "<p>%{notifier_name} and %{group_member_count} people replied
|
16
|
-
mail_subject: 'New comment
|
19
|
+
text: "<p>%{notifier_name} and %{group_member_count} other people replied %{group_notification_count} times to your comment</p>"
|
20
|
+
mail_subject: 'New comment on your article'
|
17
21
|
admin:
|
18
22
|
article:
|
19
23
|
post:
|
@@ -13,7 +13,7 @@ class ActivityNotification::MailerPreview < ActionMailer::Preview
|
|
13
13
|
def send_batch_notification_email
|
14
14
|
target = User.find_by_name('Ichiro')
|
15
15
|
target_notifications = target.notification_index_with_attributes(filtered_by_key: 'comment.default')
|
16
|
-
ActivityNotification::Mailer.send_batch_notification_email(target, target_notifications)
|
16
|
+
ActivityNotification::Mailer.send_batch_notification_email(target, target_notifications, 'batch.comment.default')
|
17
17
|
end
|
18
18
|
|
19
19
|
end
|
@@ -183,6 +183,7 @@ describe ActivityNotification::ActsAsNotifiable do
|
|
183
183
|
|
184
184
|
context "with :dependent_notifications option" do
|
185
185
|
before do
|
186
|
+
dummy_notifiable_class.delete_all
|
186
187
|
@notifiable_1, @notifiable_2, @notifiable_3 = dummy_notifiable_class.create, dummy_notifiable_class.create, dummy_notifiable_class.create
|
187
188
|
@group_owner = create(:notification, target: user_target, notifiable: @notifiable_1, group: @notifiable_1)
|
188
189
|
@group_member = create(:notification, target: user_target, notifiable: @notifiable_2, group: @notifiable_1, group_owner: @group_owner)
|
@@ -205,7 +206,7 @@ describe ActivityNotification::ActsAsNotifiable do
|
|
205
206
|
it "does not deletes any notifications when notifiable is deleted" do
|
206
207
|
dummy_notifiable_class.acts_as_notifiable :users
|
207
208
|
expect(user_target.notifications.reload.size).to eq(3)
|
208
|
-
expect { @notifiable_1.destroy }.to change(
|
209
|
+
expect { @notifiable_1.destroy }.to change(@notifiable_1, :destroyed?).from(false).to(true)
|
209
210
|
expect(user_target.notifications.reload.size).to eq(3)
|
210
211
|
end
|
211
212
|
end
|
@@ -214,14 +215,14 @@ describe ActivityNotification::ActsAsNotifiable do
|
|
214
215
|
it "deletes all notifications when notifiable is deleted" do
|
215
216
|
dummy_notifiable_class.acts_as_notifiable :users, dependent_notifications: :delete_all
|
216
217
|
expect(user_target.notifications.reload.size).to eq(3)
|
217
|
-
expect { @notifiable_1.destroy }.to change(
|
218
|
+
expect { @notifiable_1.destroy }.to change(@notifiable_1, :destroyed?).from(false).to(true)
|
218
219
|
expect(user_target.notifications.reload.size).to eq(2)
|
219
220
|
expect(@group_member.reload.group_owner?).to be_falsey
|
220
221
|
end
|
221
222
|
|
222
223
|
it "does not delete notifications of other targets when notifiable is deleted" do
|
223
224
|
dummy_notifiable_class.acts_as_notifiable :users, dependent_notifications: :delete_all
|
224
|
-
expect { @notifiable_1.destroy }.to change(
|
225
|
+
expect { @notifiable_1.destroy }.to change(@notifiable_1, :destroyed?).from(false).to(true)
|
225
226
|
expect(user_target.notifications.filtered_by_instance(@notifiable_1).count).to eq(0)
|
226
227
|
expect(dummy_target.notifications.filtered_by_instance(@notifiable_1).count).to eq(1)
|
227
228
|
end
|
@@ -231,14 +232,14 @@ describe ActivityNotification::ActsAsNotifiable do
|
|
231
232
|
it "destroies all notifications when notifiable is deleted" do
|
232
233
|
dummy_notifiable_class.acts_as_notifiable :users, dependent_notifications: :destroy
|
233
234
|
expect(user_target.notifications.reload.size).to eq(3)
|
234
|
-
expect { @notifiable_1.destroy }.to change(
|
235
|
+
expect { @notifiable_1.destroy }.to change(@notifiable_1, :destroyed?).from(false).to(true)
|
235
236
|
expect(user_target.notifications.reload.size).to eq(2)
|
236
237
|
expect(@group_member.reload.group_owner?).to be_falsey
|
237
238
|
end
|
238
239
|
|
239
240
|
it "does not destroy notifications of other targets when notifiable is deleted" do
|
240
241
|
dummy_notifiable_class.acts_as_notifiable :users, dependent_notifications: :destroy
|
241
|
-
expect { @notifiable_1.destroy }.to change(
|
242
|
+
expect { @notifiable_1.destroy }.to change(@notifiable_1, :destroyed?).from(false).to(true)
|
242
243
|
expect(user_target.notifications.filtered_by_instance(@notifiable_1).count).to eq(0)
|
243
244
|
expect(dummy_target.notifications.filtered_by_instance(@notifiable_1).count).to eq(1)
|
244
245
|
end
|
@@ -260,7 +261,8 @@ describe ActivityNotification::ActsAsNotifiable do
|
|
260
261
|
it "can not be deleted when it has generated notifications" do
|
261
262
|
dummy_notifiable_class.acts_as_notifiable :users, dependent_notifications: :restrict_with_error
|
262
263
|
expect(user_target.notifications.reload.size).to eq(3)
|
263
|
-
|
264
|
+
@notifiable_1.destroy
|
265
|
+
expect(@notifiable_1.destroyed?).to be_falsey
|
264
266
|
end
|
265
267
|
end
|
266
268
|
|
@@ -268,21 +270,21 @@ describe ActivityNotification::ActsAsNotifiable do
|
|
268
270
|
it "deletes all notifications and update notification group when notifiable is deleted" do
|
269
271
|
dummy_notifiable_class.acts_as_notifiable :users, dependent_notifications: :update_group_and_delete_all
|
270
272
|
expect(user_target.notifications.reload.size).to eq(3)
|
271
|
-
expect { @notifiable_1.destroy }.to change(
|
273
|
+
expect { @notifiable_1.destroy }.to change(@notifiable_1, :destroyed?).from(false).to(true)
|
272
274
|
expect(user_target.notifications.reload.size).to eq(2)
|
273
275
|
expect(@group_member.reload.group_owner?).to be_truthy
|
274
276
|
end
|
275
277
|
|
276
278
|
it "does not delete notifications of other targets when notifiable is deleted" do
|
277
279
|
dummy_notifiable_class.acts_as_notifiable :users, dependent_notifications: :update_group_and_delete_all
|
278
|
-
expect { @notifiable_1.destroy }.to change(
|
280
|
+
expect { @notifiable_1.destroy }.to change(@notifiable_1, :destroyed?).from(false).to(true)
|
279
281
|
expect(user_target.notifications.filtered_by_instance(@notifiable_1).count).to eq(0)
|
280
282
|
expect(dummy_target.notifications.filtered_by_instance(@notifiable_1).count).to eq(1)
|
281
283
|
end
|
282
284
|
|
283
285
|
it "does not update notification group when notifiable is deleted" do
|
284
286
|
dummy_notifiable_class.acts_as_notifiable :users, dependent_notifications: :update_group_and_delete_all
|
285
|
-
expect { @notifiable_1.destroy }.to change(
|
287
|
+
expect { @notifiable_1.destroy }.to change(@notifiable_1, :destroyed?).from(false).to(true)
|
286
288
|
expect(@group_member.reload.group_owner?).to be_truthy
|
287
289
|
expect(@other_target_group_member.reload.group_owner?).to be_falsey
|
288
290
|
end
|
@@ -292,21 +294,21 @@ describe ActivityNotification::ActsAsNotifiable do
|
|
292
294
|
it "destroies all notifications and update notification group when notifiable is deleted" do
|
293
295
|
dummy_notifiable_class.acts_as_notifiable :users, dependent_notifications: :update_group_and_destroy
|
294
296
|
expect(user_target.notifications.reload.size).to eq(3)
|
295
|
-
expect { @notifiable_1.destroy }.to change(
|
297
|
+
expect { @notifiable_1.destroy }.to change(@notifiable_1, :destroyed?).from(false).to(true)
|
296
298
|
expect(user_target.notifications.reload.size).to eq(2)
|
297
299
|
expect(@group_member.reload.group_owner?).to be_truthy
|
298
300
|
end
|
299
301
|
|
300
302
|
it "does not destroy notifications of other targets when notifiable is deleted" do
|
301
303
|
dummy_notifiable_class.acts_as_notifiable :users, dependent_notifications: :update_group_and_destroy
|
302
|
-
expect { @notifiable_1.destroy }.to change(
|
304
|
+
expect { @notifiable_1.destroy }.to change(@notifiable_1, :destroyed?).from(false).to(true)
|
303
305
|
expect(user_target.notifications.filtered_by_instance(@notifiable_1).count).to eq(0)
|
304
306
|
expect(dummy_target.notifications.filtered_by_instance(@notifiable_1).count).to eq(1)
|
305
307
|
end
|
306
308
|
|
307
309
|
it "does not update notification group when notifiable is deleted" do
|
308
310
|
dummy_notifiable_class.acts_as_notifiable :users, dependent_notifications: :update_group_and_destroy
|
309
|
-
expect { @notifiable_1.destroy }.to change(
|
311
|
+
expect { @notifiable_1.destroy }.to change(@notifiable_1, :destroyed?).from(false).to(true)
|
310
312
|
expect(@group_member.reload.group_owner?).to be_truthy
|
311
313
|
expect(@other_target_group_member.reload.group_owner?).to be_falsey
|
312
314
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activity_notification
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shota Yamazaki
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-05-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
version: 4.2.0
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: '5.
|
22
|
+
version: '5.3'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,7 +29,7 @@ dependencies:
|
|
29
29
|
version: 4.2.0
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: '5.
|
32
|
+
version: '5.3'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: i18n
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -78,28 +78,28 @@ dependencies:
|
|
78
78
|
requirements:
|
79
79
|
- - "~>"
|
80
80
|
- !ruby/object:Gem::Version
|
81
|
-
version: 0.
|
81
|
+
version: 0.5.1
|
82
82
|
type: :development
|
83
83
|
prerelease: false
|
84
84
|
version_requirements: !ruby/object:Gem::Requirement
|
85
85
|
requirements:
|
86
86
|
- - "~>"
|
87
87
|
- !ruby/object:Gem::Version
|
88
|
-
version: 0.
|
88
|
+
version: 0.5.1
|
89
89
|
- !ruby/object:Gem::Dependency
|
90
90
|
name: pg
|
91
91
|
requirement: !ruby/object:Gem::Requirement
|
92
92
|
requirements:
|
93
93
|
- - "~>"
|
94
94
|
- !ruby/object:Gem::Version
|
95
|
-
version: 0.
|
95
|
+
version: 1.0.0
|
96
96
|
type: :development
|
97
97
|
prerelease: false
|
98
98
|
version_requirements: !ruby/object:Gem::Requirement
|
99
99
|
requirements:
|
100
100
|
- - "~>"
|
101
101
|
- !ruby/object:Gem::Version
|
102
|
-
version: 0.
|
102
|
+
version: 1.0.0
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: mongoid
|
105
105
|
requirement: !ruby/object:Gem::Requirement
|
@@ -120,14 +120,14 @@ dependencies:
|
|
120
120
|
requirements:
|
121
121
|
- - "~>"
|
122
122
|
- !ruby/object:Gem::Version
|
123
|
-
version: 3.7.
|
123
|
+
version: 3.7.2
|
124
124
|
type: :development
|
125
125
|
prerelease: false
|
126
126
|
version_requirements: !ruby/object:Gem::Requirement
|
127
127
|
requirements:
|
128
128
|
- - "~>"
|
129
129
|
- !ruby/object:Gem::Version
|
130
|
-
version: 3.7.
|
130
|
+
version: 3.7.2
|
131
131
|
- !ruby/object:Gem::Dependency
|
132
132
|
name: factory_bot_rails
|
133
133
|
requirement: !ruby/object:Gem::Requirement
|
@@ -162,14 +162,14 @@ dependencies:
|
|
162
162
|
requirements:
|
163
163
|
- - "~>"
|
164
164
|
- !ruby/object:Gem::Version
|
165
|
-
version: 0.9.
|
165
|
+
version: 0.9.12
|
166
166
|
type: :development
|
167
167
|
prerelease: false
|
168
168
|
version_requirements: !ruby/object:Gem::Requirement
|
169
169
|
requirements:
|
170
170
|
- - "~>"
|
171
171
|
- !ruby/object:Gem::Version
|
172
|
-
version: 0.9.
|
172
|
+
version: 0.9.12
|
173
173
|
- !ruby/object:Gem::Dependency
|
174
174
|
name: yard-activesupport-concern
|
175
175
|
requirement: !ruby/object:Gem::Requirement
|
@@ -190,14 +190,14 @@ dependencies:
|
|
190
190
|
requirements:
|
191
191
|
- - "~>"
|
192
192
|
- !ruby/object:Gem::Version
|
193
|
-
version: 4.3
|
193
|
+
version: 4.4.3
|
194
194
|
type: :development
|
195
195
|
prerelease: false
|
196
196
|
version_requirements: !ruby/object:Gem::Requirement
|
197
197
|
requirements:
|
198
198
|
- - "~>"
|
199
199
|
- !ruby/object:Gem::Version
|
200
|
-
version: 4.3
|
200
|
+
version: 4.4.3
|
201
201
|
- !ruby/object:Gem::Dependency
|
202
202
|
name: aws-sdk-sns
|
203
203
|
requirement: !ruby/object:Gem::Requirement
|
@@ -288,6 +288,8 @@ files:
|
|
288
288
|
- gemfiles/Gemfile.rails-5.0.lock
|
289
289
|
- gemfiles/Gemfile.rails-5.1
|
290
290
|
- gemfiles/Gemfile.rails-5.1.lock
|
291
|
+
- gemfiles/Gemfile.rails-5.2
|
292
|
+
- gemfiles/Gemfile.rails-5.2.lock
|
291
293
|
- lib/activity_notification.rb
|
292
294
|
- lib/activity_notification/apis/notification_api.rb
|
293
295
|
- lib/activity_notification/apis/subscription_api.rb
|
@@ -343,6 +345,7 @@ files:
|
|
343
345
|
- lib/generators/templates/models/notification.rb
|
344
346
|
- lib/generators/templates/models/subscription.rb
|
345
347
|
- lib/tasks/activity_notification_tasks.rake
|
348
|
+
- scripts/bundle_update.sh
|
346
349
|
- spec/concerns/apis/notification_api_spec.rb
|
347
350
|
- spec/concerns/apis/subscription_api_spec.rb
|
348
351
|
- spec/concerns/common_spec.rb
|