activity_notification 1.6.0 → 1.6.1
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/CHANGELOG.md +12 -0
- data/README.md +36 -0
- data/lib/activity_notification/apis/notification_api.rb +1 -1
- data/lib/activity_notification/version.rb +1 -1
- data/spec/rails_app/app/models/dummy/dummy_notifiable_target.rb +18 -0
- data/spec/roles/acts_as_notifiable_spec.rb +14 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c4bddcd228924d6a594bb826a9e815a5bc31baed
|
4
|
+
data.tar.gz: 0d2e2517c32fab5cf3310d1f6261ee1a40323c52
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3015810028cce0174fb091f46ded488310307e527b16b27f36bd72942112356373dbac8c9ed5e4ff2e2ebfb55fb4d33878003bf7f46165c2a0cfe0e822e355a2
|
7
|
+
data.tar.gz: 13bf2aa5ec658cbbc95236e3fd83a2c48ce513a12bc2daa07ee788757cdf5d6516d75fa7f7e5f2fd0a0b9c0dffdbaac02746cb214407a066496dfdd9079645b5
|
data/CHANGELOG.md
CHANGED
@@ -1,9 +1,21 @@
|
|
1
|
+
## 1.6.1 / 2018-11-19
|
2
|
+
[Full Changelog](http://github.com/simukappu/activity_notification/compare/v1.6.0...v1.6.1)
|
3
|
+
|
4
|
+
Enhancements:
|
5
|
+
|
6
|
+
* Update README.md to describe how to customize email subject - [#93](https://github.com/simukappu/activity_notification/issues/93)
|
7
|
+
|
8
|
+
Bug Fixes:
|
9
|
+
|
10
|
+
* Fix *notify_all* method to handle single notifiable target models - [#88](https://github.com/simukappu/activity_notification/issues/88)
|
11
|
+
|
1
12
|
## 1.6.0 / 2018-11-11
|
2
13
|
[Full Changelog](http://github.com/simukappu/activity_notification/compare/v1.5.1...v1.6.0)
|
3
14
|
|
4
15
|
Enhancements:
|
5
16
|
|
6
17
|
* Add simple default routes with devise integration - [#64](https://github.com/simukappu/activity_notification/issues/64)
|
18
|
+
* Add *:routing_scope* option to support routes with scope - [#56](https://github.com/simukappu/activity_notification/issues/56)
|
7
19
|
|
8
20
|
Bug Fixes:
|
9
21
|
|
data/README.md
CHANGED
@@ -72,11 +72,13 @@
|
|
72
72
|
- [Mailer setup](#mailer-setup)
|
73
73
|
- [Sender configuration](#sender-configuration)
|
74
74
|
- [Email templates](#email-templates)
|
75
|
+
- [Email subject](#email-subject)
|
75
76
|
- [i18n for email](#i18n-for-email)
|
76
77
|
- [Batch email notification](#batch-email-notification)
|
77
78
|
- [Batch mailer setup](#batch-mailer-setup)
|
78
79
|
- [Batch sender configuration](#batch-sender-configuration)
|
79
80
|
- [Batch email templates](#batch-email-templates)
|
81
|
+
- [Batch email subject](#batch-email-subject)
|
80
82
|
- [i18n for batch email](#i18n-for-batch-email)
|
81
83
|
- [Grouping notifications](#grouping-notifications)
|
82
84
|
- [Subscription management](#subscription-management)
|
@@ -673,6 +675,34 @@ config.mailer_sender = ->(key){ key == 'inquiry.post' ? 'support@example.com' :
|
|
673
675
|
|
674
676
|
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)*.
|
675
677
|
|
678
|
+
#### Email subject
|
679
|
+
|
680
|
+
*activity_notification* will use `"Notification of #{@notification.notifiable.printable_type.downcase}"` as default email subject. If it is defined, *activity_notification* will resolve email subject from *overriding_notification_email_subject* method in notifiable models. You can customize email subject like this:
|
681
|
+
|
682
|
+
```
|
683
|
+
class Comment < ActiveRecord::Base
|
684
|
+
belongs_to :article
|
685
|
+
belongs_to :user
|
686
|
+
|
687
|
+
acts_as_notifiable :users,
|
688
|
+
targets: ->(comment, key) {
|
689
|
+
([comment.article.user] + comment.article.commented_users.to_a - [comment.user]).uniq
|
690
|
+
},
|
691
|
+
notifiable_path: :article_notifiable_path
|
692
|
+
|
693
|
+
def overriding_notification_email_subject(target, key)
|
694
|
+
if key == "comment.create"
|
695
|
+
"New comment to your article!"
|
696
|
+
else
|
697
|
+
"Notification for new comments!"
|
698
|
+
end
|
699
|
+
end
|
700
|
+
end
|
701
|
+
|
702
|
+
```
|
703
|
+
|
704
|
+
If you use i18n for email, you can configure email subject in your locale files. See [i18n for email](#i18n-for-email).
|
705
|
+
|
676
706
|
#### i18n for email
|
677
707
|
|
678
708
|
The subject of notification email can be put in your locale *.yml* files as **mail_subject** field:
|
@@ -739,6 +769,12 @@ config.mailer_sender = ->(batch_key){ batch_key == 'batch.inquiry.post' ? 'suppo
|
|
739
769
|
|
740
770
|
*activity_notification* will look for batch email template in the same way as email notification using *batch_key*.
|
741
771
|
|
772
|
+
#### Batch email subject
|
773
|
+
|
774
|
+
*activity_notification* will resolve batch email subject as the same way as [email subject](#email-subject) with *batch_key*.
|
775
|
+
|
776
|
+
If you use i18n for batch email, you can configure batch email subject in your locale files. See [i18n for batch email](#i18n-for-batch-email).
|
777
|
+
|
742
778
|
#### i18n for batch email
|
743
779
|
|
744
780
|
The subject of batch notification email also can be put in your locale *.yml* files as **mail_subject** field for *batch_key*.
|
@@ -189,7 +189,7 @@ module ActivityNotification
|
|
189
189
|
# @option options [Hash<String, Hash>] :optional_targets ({}) Options for optional targets, keys are optional target name (:amazon_sns or :slack etc) and values are options
|
190
190
|
# @return [Array<Notificaion>] Array of generated notifications
|
191
191
|
def notify_all(targets, notifiable, options = {})
|
192
|
-
targets.map { |target|
|
192
|
+
targets.map { |target| notify_to(target, notifiable, options) }
|
193
193
|
end
|
194
194
|
|
195
195
|
# Generates notifications to one target.
|
@@ -0,0 +1,18 @@
|
|
1
|
+
unless ENV['AN_TEST_DB'] == 'mongodb'
|
2
|
+
class Dummy::DummyNotifiableTarget < ActiveRecord::Base
|
3
|
+
self.table_name = :users
|
4
|
+
acts_as_target
|
5
|
+
acts_as_notifiable :dummy_notifiable_targets, targets: -> (n, key) { Dummy::DummyNotifiableTarget.all }, tracked: true
|
6
|
+
end
|
7
|
+
else
|
8
|
+
class Dummy::DummyNotifiableTarget
|
9
|
+
include Mongoid::Document
|
10
|
+
include Mongoid::Timestamps
|
11
|
+
field :email, type: String, default: ""
|
12
|
+
field :name, type: String
|
13
|
+
|
14
|
+
include ActivityNotification::Models
|
15
|
+
acts_as_target
|
16
|
+
acts_as_notifiable :dummy_notifiable_targets, targets: -> (n, key) { Dummy::DummyNotifiableTarget.all }, tracked: true
|
17
|
+
end
|
18
|
+
end
|
@@ -83,6 +83,20 @@ describe ActivityNotification::ActsAsNotifiable do
|
|
83
83
|
.to eq(@notifiable.notification_key_for_tracked_update)
|
84
84
|
end
|
85
85
|
end
|
86
|
+
|
87
|
+
context "when the target is also configured as notifiable" do
|
88
|
+
before do
|
89
|
+
ActivityNotification::Notification.filtered_by_type("Dummy::DummyNotifiableTarget").delete_all
|
90
|
+
Dummy::DummyNotifiableTarget.delete_all
|
91
|
+
@created_target = Dummy::DummyNotifiableTarget.create
|
92
|
+
@created_notifiable = Dummy::DummyNotifiableTarget.create
|
93
|
+
end
|
94
|
+
|
95
|
+
it "generates notifications to specified targets" do
|
96
|
+
expect(@created_target.notifications.filtered_by_instance(@created_notifiable).count).to eq(1)
|
97
|
+
expect(@created_notifiable.notifications.filtered_by_instance(@created_notifiable).count).to eq(1)
|
98
|
+
end
|
99
|
+
end
|
86
100
|
end
|
87
101
|
|
88
102
|
context "with :only option (creation only)" do
|
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.6.
|
4
|
+
version: 1.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shota Yamazaki
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-11-
|
11
|
+
date: 2018-11-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -417,6 +417,7 @@ files:
|
|
417
417
|
- spec/rails_app/app/models/dummy/dummy_base.rb
|
418
418
|
- spec/rails_app/app/models/dummy/dummy_group.rb
|
419
419
|
- spec/rails_app/app/models/dummy/dummy_notifiable.rb
|
420
|
+
- spec/rails_app/app/models/dummy/dummy_notifiable_target.rb
|
420
421
|
- spec/rails_app/app/models/dummy/dummy_notifier.rb
|
421
422
|
- spec/rails_app/app/models/dummy/dummy_subscriber.rb
|
422
423
|
- spec/rails_app/app/models/dummy/dummy_target.rb
|
@@ -573,6 +574,7 @@ test_files:
|
|
573
574
|
- spec/rails_app/app/models/dummy/dummy_base.rb
|
574
575
|
- spec/rails_app/app/models/dummy/dummy_group.rb
|
575
576
|
- spec/rails_app/app/models/dummy/dummy_notifiable.rb
|
577
|
+
- spec/rails_app/app/models/dummy/dummy_notifiable_target.rb
|
576
578
|
- spec/rails_app/app/models/dummy/dummy_notifier.rb
|
577
579
|
- spec/rails_app/app/models/dummy/dummy_subscriber.rb
|
578
580
|
- spec/rails_app/app/models/dummy/dummy_target.rb
|