activity_notification 0.0.10 → 1.0.0
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.
- checksums.yaml +4 -4
- data/.travis.yml +6 -0
- data/Gemfile +6 -3
- data/Gemfile.lock +74 -58
- data/README.md +53 -26
- data/activity_notification.gemspec +2 -0
- data/app/controllers/activity_notification/notifications_controller.rb +4 -4
- data/app/mailers/activity_notification/mailer.rb +9 -3
- data/app/views/activity_notification/mailer/default/default.html.erb +9 -4
- data/app/views/activity_notification/mailer/default/default.text.erb +10 -0
- data/app/views/activity_notification/notifications/default/_default.html.erb +173 -34
- data/app/views/activity_notification/notifications/default/_index.html.erb +119 -11
- data/app/views/activity_notification/notifications/default/destroy.js.erb +2 -2
- data/app/views/activity_notification/notifications/default/index.html.erb +25 -14
- data/app/views/activity_notification/notifications/default/open.js.erb +2 -2
- data/app/views/activity_notification/notifications/default/open_all.js.erb +2 -2
- data/app/views/activity_notification/notifications/default/show.html.erb +1 -1
- data/gemfiles/Gemfile.rails-4.2 +0 -2
- data/gemfiles/Gemfile.rails-4.2.lock +3 -3
- data/gemfiles/Gemfile.rails-5.0 +1 -3
- data/lib/activity_notification.rb +10 -9
- data/lib/activity_notification/apis/notification_api.rb +108 -14
- data/lib/activity_notification/common.rb +11 -2
- data/lib/activity_notification/config.rb +13 -13
- data/lib/activity_notification/helpers/view_helpers.rb +26 -4
- data/lib/activity_notification/mailers/helpers.rb +8 -4
- data/lib/activity_notification/models.rb +4 -0
- data/lib/activity_notification/models/concerns/group.rb +32 -0
- data/lib/activity_notification/models/concerns/notifiable.rb +60 -32
- data/lib/activity_notification/models/concerns/notifier.rb +17 -1
- data/lib/activity_notification/models/concerns/target.rb +114 -55
- data/lib/activity_notification/models/notification.rb +26 -25
- data/lib/activity_notification/rails.rb +1 -0
- data/lib/activity_notification/renderable.rb +8 -3
- data/lib/activity_notification/roles/acts_as_common.rb +28 -0
- data/lib/activity_notification/roles/acts_as_group.rb +38 -0
- data/lib/activity_notification/roles/acts_as_notifiable.rb +56 -22
- data/lib/activity_notification/roles/acts_as_notifier.rb +25 -2
- data/lib/activity_notification/roles/acts_as_target.rb +27 -9
- data/lib/activity_notification/version.rb +1 -1
- data/lib/generators/templates/activity_notification.rb +1 -1
- data/spec/concerns/apis/notification_api_spec.rb +361 -2
- data/spec/concerns/common_spec.rb +36 -0
- data/spec/concerns/models/group_spec.rb +61 -0
- data/spec/concerns/models/notifiable_spec.rb +37 -0
- data/spec/concerns/models/notifier_spec.rb +48 -0
- data/spec/concerns/models/target_spec.rb +81 -31
- data/spec/factories/dummy/dummy_group.rb +4 -0
- data/spec/helpers/view_helpers_spec.rb +13 -0
- data/spec/mailers/mailer_spec.rb +8 -1
- data/spec/models/dummy/dummy_group_spec.rb +6 -0
- data/spec/rails_app/app/assets/stylesheets/application.css +15 -0
- data/spec/rails_app/app/assets/stylesheets/reset.css +85 -0
- data/spec/rails_app/app/assets/stylesheets/style.css +244 -0
- data/spec/rails_app/app/controllers/articles_controller.rb +1 -1
- data/spec/rails_app/app/models/admin.rb +2 -1
- data/spec/rails_app/app/models/article.rb +9 -2
- data/spec/rails_app/app/models/comment.rb +8 -2
- data/spec/rails_app/app/models/dummy/dummy_group.rb +4 -0
- data/spec/rails_app/app/models/user.rb +8 -3
- data/spec/rails_app/app/views/articles/_form.html.erb +14 -10
- data/spec/rails_app/app/views/articles/edit.html.erb +8 -6
- data/spec/rails_app/app/views/articles/index.html.erb +59 -67
- data/spec/rails_app/app/views/articles/new.html.erb +7 -5
- data/spec/rails_app/app/views/articles/show.html.erb +47 -36
- data/spec/rails_app/app/views/layouts/_header.html.erb +36 -9
- data/spec/rails_app/app/views/layouts/application.html.erb +8 -6
- data/spec/rails_app/config/environments/development.rb +9 -0
- data/spec/rails_app/config/initializers/activity_notification.rb +1 -1
- data/spec/rails_app/db/schema.rb +14 -20
- data/spec/rails_app/db/seeds.rb +5 -5
- data/spec/rails_app/lib/mailer_previews/mailer_preview.rb +13 -0
- data/spec/roles/acts_as_group_spec.rb +32 -0
- data/spec/roles/acts_as_notifiable_spec.rb +1 -1
- data/spec/roles/acts_as_notifier_spec.rb +15 -0
- data/spec/roles/acts_as_target_spec.rb +1 -1
- metadata +52 -2
data/spec/rails_app/db/seeds.rb
CHANGED
@@ -6,11 +6,11 @@ Comment.delete_all
|
|
6
6
|
Article.delete_all
|
7
7
|
Admin.delete_all
|
8
8
|
User.delete_all
|
9
|
-
|
9
|
+
ActivityNotification::Notification.connection.execute("UPDATE sqlite_sequence SET seq = 0;")
|
10
10
|
|
11
|
-
['
|
11
|
+
['Ichiro', 'Stephen', 'Klay', 'Kevin'].each do |name|
|
12
12
|
user = User.new(
|
13
|
-
email: "#{name}@example.com",
|
13
|
+
email: "#{name.downcase}@example.com",
|
14
14
|
password: 'changeit',
|
15
15
|
password_confirmation: 'changeit',
|
16
16
|
name: name,
|
@@ -19,7 +19,7 @@ User.connection.execute("UPDATE sqlite_sequence SET seq = 0;")
|
|
19
19
|
user.save!
|
20
20
|
end
|
21
21
|
|
22
|
-
['
|
22
|
+
['Ichiro'].each do |name|
|
23
23
|
user = User.find_by_name(name)
|
24
24
|
Admin.create(user: user)
|
25
25
|
end
|
@@ -36,7 +36,7 @@ Article.all.each do |article|
|
|
36
36
|
User.all.each do |user|
|
37
37
|
comment = article.comments.create(
|
38
38
|
user: user,
|
39
|
-
body: "This is the first #{user.name}'s comment
|
39
|
+
body: "This is the first #{user.name}'s comment to #{article.user.name}'s article."
|
40
40
|
)
|
41
41
|
comment.notify :users, send_email: false
|
42
42
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class ActivityNotification::MailerPreview < ActionMailer::Preview
|
2
|
+
|
3
|
+
def send_notification_email_single
|
4
|
+
target_notification = ActivityNotification::Notification.where(group: nil).first
|
5
|
+
ActivityNotification::Mailer.send_notification_email(target_notification)
|
6
|
+
end
|
7
|
+
|
8
|
+
def send_notification_email_with_group
|
9
|
+
target_notification = ActivityNotification::Notification.where.not(group: nil).first
|
10
|
+
ActivityNotification::Mailer.send_notification_email(target_notification)
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
describe ActivityNotification::ActsAsGroup do
|
2
|
+
let(:dummy_model_class) { Dummy::DummyBase }
|
3
|
+
|
4
|
+
describe "as public class methods" do
|
5
|
+
describe ".acts_as_group" do
|
6
|
+
it "have not included Group before calling" do
|
7
|
+
expect(dummy_model_class.respond_to?(:available_as_group?)).to be_falsey
|
8
|
+
end
|
9
|
+
|
10
|
+
it "includes Group" do
|
11
|
+
dummy_model_class.acts_as_group
|
12
|
+
expect(dummy_model_class.respond_to?(:available_as_group?)).to be_truthy
|
13
|
+
expect(dummy_model_class.available_as_group?).to be_truthy
|
14
|
+
end
|
15
|
+
|
16
|
+
context "with no options" do
|
17
|
+
it "returns hash of specified options" do
|
18
|
+
expect(dummy_model_class.acts_as_group).to eq({})
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
#TODO test other options
|
23
|
+
end
|
24
|
+
|
25
|
+
describe ".available_group_options" do
|
26
|
+
it "returns list of available options in acts_as_group" do
|
27
|
+
expect(dummy_model_class.available_group_options)
|
28
|
+
.to eq([:printable_notification_group_name, :printable_name])
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -25,7 +25,7 @@ describe ActivityNotification::ActsAsNotifiable do
|
|
25
25
|
describe ".available_notifiable_options" do
|
26
26
|
it "returns list of available options in acts_as_notifiable" do
|
27
27
|
expect(dummy_model_class.available_notifiable_options)
|
28
|
-
.to eq([:targets, :group, :notifier, :parameters, :email_allowed, :notifiable_path])
|
28
|
+
.to eq([:targets, :group, :notifier, :parameters, :email_allowed, :notifiable_path, :printable_notifiable_name, :printable_name, :dependent_notifications])
|
29
29
|
end
|
30
30
|
end
|
31
31
|
end
|
@@ -12,6 +12,21 @@ describe ActivityNotification::ActsAsNotifier do
|
|
12
12
|
expect(dummy_model_class.respond_to?(:available_as_notifier?)).to be_truthy
|
13
13
|
expect(dummy_model_class.available_as_notifier?).to be_truthy
|
14
14
|
end
|
15
|
+
|
16
|
+
context "with no options" do
|
17
|
+
it "returns hash of specified options" do
|
18
|
+
expect(dummy_model_class.acts_as_notifier).to eq({})
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
#TODO test other options
|
23
|
+
end
|
24
|
+
|
25
|
+
describe ".available_notifier_options" do
|
26
|
+
it "returns list of available options in acts_as_group" do
|
27
|
+
expect(dummy_model_class.available_notifier_options)
|
28
|
+
.to eq([:printable_notifier_name, :printable_name])
|
29
|
+
end
|
15
30
|
end
|
16
31
|
end
|
17
32
|
end
|
@@ -33,7 +33,7 @@ describe ActivityNotification::ActsAsTarget do
|
|
33
33
|
describe ".available_target_options" do
|
34
34
|
it "returns list of available options in acts_as_target" do
|
35
35
|
expect(dummy_model_class.available_target_options)
|
36
|
-
.to eq([:email, :email_allowed, :devise_resource])
|
36
|
+
.to eq([:email, :email_allowed, :devise_resource, :printable_notification_target_name, :printable_name])
|
37
37
|
end
|
38
38
|
end
|
39
39
|
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: 0.0
|
4
|
+
version: 1.0.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: 2016-
|
11
|
+
date: 2016-10-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -58,6 +58,34 @@ dependencies:
|
|
58
58
|
- - ">="
|
59
59
|
- !ruby/object:Gem::Version
|
60
60
|
version: 4.2.0
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: jquery-rails
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: 3.1.1
|
68
|
+
type: :runtime
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: 3.1.1
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: sqlite3
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - "~>"
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: 1.3.11
|
82
|
+
type: :development
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - "~>"
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: 1.3.11
|
61
89
|
- !ruby/object:Gem::Dependency
|
62
90
|
name: rspec-rails
|
63
91
|
requirement: !ruby/object:Gem::Requirement
|
@@ -166,6 +194,7 @@ files:
|
|
166
194
|
- app/controllers/activity_notification/notifications_with_devise_controller.rb
|
167
195
|
- app/mailers/activity_notification/mailer.rb
|
168
196
|
- app/views/activity_notification/mailer/default/default.html.erb
|
197
|
+
- app/views/activity_notification/mailer/default/default.text.erb
|
169
198
|
- app/views/activity_notification/notifications/default/_default.html.erb
|
170
199
|
- app/views/activity_notification/notifications/default/_index.html.erb
|
171
200
|
- app/views/activity_notification/notifications/default/destroy.js.erb
|
@@ -186,6 +215,7 @@ files:
|
|
186
215
|
- lib/activity_notification/helpers/view_helpers.rb
|
187
216
|
- lib/activity_notification/mailers/helpers.rb
|
188
217
|
- lib/activity_notification/models.rb
|
218
|
+
- lib/activity_notification/models/concerns/group.rb
|
189
219
|
- lib/activity_notification/models/concerns/notifiable.rb
|
190
220
|
- lib/activity_notification/models/concerns/notifier.rb
|
191
221
|
- lib/activity_notification/models/concerns/target.rb
|
@@ -193,6 +223,8 @@ files:
|
|
193
223
|
- lib/activity_notification/rails.rb
|
194
224
|
- lib/activity_notification/rails/routes.rb
|
195
225
|
- lib/activity_notification/renderable.rb
|
226
|
+
- lib/activity_notification/roles/acts_as_common.rb
|
227
|
+
- lib/activity_notification/roles/acts_as_group.rb
|
196
228
|
- lib/activity_notification/roles/acts_as_notifiable.rb
|
197
229
|
- lib/activity_notification/roles/acts_as_notifier.rb
|
198
230
|
- lib/activity_notification/roles/acts_as_target.rb
|
@@ -213,6 +245,7 @@ files:
|
|
213
245
|
- lib/tasks/activity_notification_tasks.rake
|
214
246
|
- spec/concerns/apis/notification_api_spec.rb
|
215
247
|
- spec/concerns/common_spec.rb
|
248
|
+
- spec/concerns/models/group_spec.rb
|
216
249
|
- spec/concerns/models/notifiable_spec.rb
|
217
250
|
- spec/concerns/models/notifier_spec.rb
|
218
251
|
- spec/concerns/models/target_spec.rb
|
@@ -223,6 +256,7 @@ files:
|
|
223
256
|
- spec/factories/admins.rb
|
224
257
|
- spec/factories/articles.rb
|
225
258
|
- spec/factories/comments.rb
|
259
|
+
- spec/factories/dummy/dummy_group.rb
|
226
260
|
- spec/factories/dummy/dummy_notifiable.rb
|
227
261
|
- spec/factories/dummy/dummy_notifier.rb
|
228
262
|
- spec/factories/dummy/dummy_target.rb
|
@@ -236,12 +270,16 @@ files:
|
|
236
270
|
- spec/helpers/polymorphic_helpers_spec.rb
|
237
271
|
- spec/helpers/view_helpers_spec.rb
|
238
272
|
- spec/mailers/mailer_spec.rb
|
273
|
+
- spec/models/dummy/dummy_group_spec.rb
|
239
274
|
- spec/models/dummy/dummy_notifiable_spec.rb
|
240
275
|
- spec/models/dummy/dummy_notifier_spec.rb
|
241
276
|
- spec/models/dummy/dummy_target_spec.rb
|
242
277
|
- spec/models/notification_spec.rb
|
243
278
|
- spec/rails_app/Rakefile
|
244
279
|
- spec/rails_app/app/assets/javascripts/application.js
|
280
|
+
- spec/rails_app/app/assets/stylesheets/application.css
|
281
|
+
- spec/rails_app/app/assets/stylesheets/reset.css
|
282
|
+
- spec/rails_app/app/assets/stylesheets/style.css
|
245
283
|
- spec/rails_app/app/controllers/application_controller.rb
|
246
284
|
- spec/rails_app/app/controllers/articles_controller.rb
|
247
285
|
- spec/rails_app/app/controllers/comments_controller.rb
|
@@ -253,6 +291,7 @@ files:
|
|
253
291
|
- spec/rails_app/app/models/article.rb
|
254
292
|
- spec/rails_app/app/models/comment.rb
|
255
293
|
- spec/rails_app/app/models/dummy/dummy_base.rb
|
294
|
+
- spec/rails_app/app/models/dummy/dummy_group.rb
|
256
295
|
- spec/rails_app/app/models/dummy/dummy_notifiable.rb
|
257
296
|
- spec/rails_app/app/models/dummy/dummy_notifier.rb
|
258
297
|
- spec/rails_app/app/models/dummy/dummy_target.rb
|
@@ -298,10 +337,12 @@ files:
|
|
298
337
|
- spec/rails_app/db/migrate/20160715050433_create_test_tables.rb
|
299
338
|
- spec/rails_app/db/schema.rb
|
300
339
|
- spec/rails_app/db/seeds.rb
|
340
|
+
- spec/rails_app/lib/mailer_previews/mailer_preview.rb
|
301
341
|
- spec/rails_app/public/404.html
|
302
342
|
- spec/rails_app/public/422.html
|
303
343
|
- spec/rails_app/public/500.html
|
304
344
|
- spec/rails_app/public/favicon.ico
|
345
|
+
- spec/roles/acts_as_group_spec.rb
|
305
346
|
- spec/roles/acts_as_notifiable_spec.rb
|
306
347
|
- spec/roles/acts_as_notifier_spec.rb
|
307
348
|
- spec/roles/acts_as_target_spec.rb
|
@@ -333,6 +374,7 @@ summary: Integrated user activity notifications for Ruby on Rails
|
|
333
374
|
test_files:
|
334
375
|
- spec/concerns/apis/notification_api_spec.rb
|
335
376
|
- spec/concerns/common_spec.rb
|
377
|
+
- spec/concerns/models/group_spec.rb
|
336
378
|
- spec/concerns/models/notifiable_spec.rb
|
337
379
|
- spec/concerns/models/notifier_spec.rb
|
338
380
|
- spec/concerns/models/target_spec.rb
|
@@ -343,6 +385,7 @@ test_files:
|
|
343
385
|
- spec/factories/admins.rb
|
344
386
|
- spec/factories/articles.rb
|
345
387
|
- spec/factories/comments.rb
|
388
|
+
- spec/factories/dummy/dummy_group.rb
|
346
389
|
- spec/factories/dummy/dummy_notifiable.rb
|
347
390
|
- spec/factories/dummy/dummy_notifier.rb
|
348
391
|
- spec/factories/dummy/dummy_target.rb
|
@@ -356,12 +399,16 @@ test_files:
|
|
356
399
|
- spec/helpers/polymorphic_helpers_spec.rb
|
357
400
|
- spec/helpers/view_helpers_spec.rb
|
358
401
|
- spec/mailers/mailer_spec.rb
|
402
|
+
- spec/models/dummy/dummy_group_spec.rb
|
359
403
|
- spec/models/dummy/dummy_notifiable_spec.rb
|
360
404
|
- spec/models/dummy/dummy_notifier_spec.rb
|
361
405
|
- spec/models/dummy/dummy_target_spec.rb
|
362
406
|
- spec/models/notification_spec.rb
|
363
407
|
- spec/rails_app/Rakefile
|
364
408
|
- spec/rails_app/app/assets/javascripts/application.js
|
409
|
+
- spec/rails_app/app/assets/stylesheets/application.css
|
410
|
+
- spec/rails_app/app/assets/stylesheets/reset.css
|
411
|
+
- spec/rails_app/app/assets/stylesheets/style.css
|
365
412
|
- spec/rails_app/app/controllers/application_controller.rb
|
366
413
|
- spec/rails_app/app/controllers/articles_controller.rb
|
367
414
|
- spec/rails_app/app/controllers/comments_controller.rb
|
@@ -373,6 +420,7 @@ test_files:
|
|
373
420
|
- spec/rails_app/app/models/article.rb
|
374
421
|
- spec/rails_app/app/models/comment.rb
|
375
422
|
- spec/rails_app/app/models/dummy/dummy_base.rb
|
423
|
+
- spec/rails_app/app/models/dummy/dummy_group.rb
|
376
424
|
- spec/rails_app/app/models/dummy/dummy_notifiable.rb
|
377
425
|
- spec/rails_app/app/models/dummy/dummy_notifier.rb
|
378
426
|
- spec/rails_app/app/models/dummy/dummy_target.rb
|
@@ -418,10 +466,12 @@ test_files:
|
|
418
466
|
- spec/rails_app/db/migrate/20160715050433_create_test_tables.rb
|
419
467
|
- spec/rails_app/db/schema.rb
|
420
468
|
- spec/rails_app/db/seeds.rb
|
469
|
+
- spec/rails_app/lib/mailer_previews/mailer_preview.rb
|
421
470
|
- spec/rails_app/public/404.html
|
422
471
|
- spec/rails_app/public/422.html
|
423
472
|
- spec/rails_app/public/500.html
|
424
473
|
- spec/rails_app/public/favicon.ico
|
474
|
+
- spec/roles/acts_as_group_spec.rb
|
425
475
|
- spec/roles/acts_as_notifiable_spec.rb
|
426
476
|
- spec/roles/acts_as_notifier_spec.rb
|
427
477
|
- spec/roles/acts_as_target_spec.rb
|