activity_notification 0.0.10 → 1.0.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 +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
|