activity_notification 1.4.0 → 1.4.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 +39 -32
- data/Gemfile +0 -3
- data/Gemfile.lock +66 -73
- data/README.md +190 -184
- data/activity_notification.gemspec +2 -3
- data/gemfiles/Gemfile.rails-4.2 +7 -1
- data/gemfiles/Gemfile.rails-4.2.lock +35 -26
- data/gemfiles/Gemfile.rails-5.0 +7 -1
- data/gemfiles/Gemfile.rails-5.0.lock +73 -64
- data/gemfiles/Gemfile.rails-5.1 +6 -3
- data/gemfiles/Gemfile.rails-5.1.lock +77 -74
- data/lib/activity_notification/apis/notification_api.rb +3 -3
- data/lib/activity_notification/models.rb +1 -1
- data/lib/activity_notification/models/concerns/notifiable.rb +1 -1
- data/lib/activity_notification/models/concerns/target.rb +1 -1
- data/lib/activity_notification/orm/active_record/notification.rb +7 -0
- data/lib/activity_notification/orm/mongoid.rb +11 -1
- data/lib/activity_notification/orm/mongoid/notification.rb +9 -2
- data/lib/activity_notification/orm/mongoid/subscription.rb +1 -1
- data/lib/activity_notification/roles/acts_as_notifiable.rb +30 -15
- data/lib/activity_notification/version.rb +1 -1
- data/spec/rails_app/app/models/admin.rb +1 -1
- data/spec/rails_app/app/models/article.rb +1 -1
- data/spec/rails_app/app/models/comment.rb +1 -1
- data/spec/rails_app/app/models/dummy/dummy_base.rb +10 -2
- data/spec/rails_app/app/models/dummy/dummy_group.rb +13 -3
- data/spec/rails_app/app/models/dummy/dummy_notifiable.rb +13 -3
- data/spec/rails_app/app/models/dummy/dummy_notifier.rb +13 -3
- data/spec/rails_app/app/models/dummy/dummy_subscriber.rb +12 -3
- data/spec/rails_app/app/models/dummy/dummy_target.rb +14 -3
- data/spec/rails_app/app/models/user.rb +1 -1
- data/spec/rails_app/config/application.rb +7 -3
- data/spec/rails_app/config/environment.rb +1 -1
- data/spec/rails_app/config/environments/development.rb +3 -1
- data/spec/rails_app/config/environments/test.rb +4 -1
- data/spec/roles/acts_as_notifiable_spec.rb +10 -6
- data/spec/spec_helper.rb +0 -3
- metadata +6 -20
@@ -1,2 +1,10 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
unless ENV['AN_TEST_DB'] == 'mongodb'
|
2
|
+
class Dummy::DummyBase < ActiveRecord::Base
|
3
|
+
end
|
4
|
+
else
|
5
|
+
class Dummy::DummyBase
|
6
|
+
include Mongoid::Document
|
7
|
+
include Mongoid::Timestamps
|
8
|
+
include ActivityNotification::Models
|
9
|
+
end
|
10
|
+
end
|
@@ -1,4 +1,14 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
unless ENV['AN_TEST_DB'] == 'mongodb'
|
2
|
+
class Dummy::DummyGroup < ActiveRecord::Base
|
3
|
+
self.table_name = :articles
|
4
|
+
include ActivityNotification::Group
|
5
|
+
end
|
6
|
+
else
|
7
|
+
class Dummy::DummyGroup
|
8
|
+
include Mongoid::Document
|
9
|
+
include Mongoid::Timestamps
|
10
|
+
include ActivityNotification::Models
|
11
|
+
include ActivityNotification::Group
|
12
|
+
field :title, type: String
|
13
|
+
end
|
4
14
|
end
|
@@ -1,4 +1,14 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
unless ENV['AN_TEST_DB'] == 'mongodb'
|
2
|
+
class Dummy::DummyNotifiable < ActiveRecord::Base
|
3
|
+
self.table_name = :articles
|
4
|
+
include ActivityNotification::Notifiable
|
5
|
+
end
|
6
|
+
else
|
7
|
+
class Dummy::DummyNotifiable
|
8
|
+
include Mongoid::Document
|
9
|
+
include Mongoid::Timestamps
|
10
|
+
include ActivityNotification::Models
|
11
|
+
include ActivityNotification::Notifiable
|
12
|
+
field :title, type: String
|
13
|
+
end
|
4
14
|
end
|
@@ -1,4 +1,14 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
unless ENV['AN_TEST_DB'] == 'mongodb'
|
2
|
+
class Dummy::DummyNotifier < ActiveRecord::Base
|
3
|
+
self.table_name = :users
|
4
|
+
include ActivityNotification::Notifier
|
5
|
+
end
|
6
|
+
else
|
7
|
+
class Dummy::DummyNotifier
|
8
|
+
include Mongoid::Document
|
9
|
+
include Mongoid::Timestamps
|
10
|
+
include ActivityNotification::Models
|
11
|
+
include ActivityNotification::Notifier
|
12
|
+
field :name, type: String
|
13
|
+
end
|
4
14
|
end
|
@@ -1,4 +1,13 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
unless ENV['AN_TEST_DB'] == 'mongodb'
|
2
|
+
class Dummy::DummySubscriber < ActiveRecord::Base
|
3
|
+
self.table_name = :users
|
4
|
+
acts_as_target email: 'dummy@example.com', email_allowed: true, batch_email_allowed: true, subscription_allowed: true
|
5
|
+
end
|
6
|
+
else
|
7
|
+
class Dummy::DummySubscriber
|
8
|
+
include Mongoid::Document
|
9
|
+
include Mongoid::Timestamps
|
10
|
+
include ActivityNotification::Models
|
11
|
+
acts_as_target email: 'dummy@example.com', email_allowed: true, batch_email_allowed: true, subscription_allowed: true
|
12
|
+
end
|
4
13
|
end
|
@@ -1,4 +1,15 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
unless ENV['AN_TEST_DB'] == 'mongodb'
|
2
|
+
class Dummy::DummyTarget < ActiveRecord::Base
|
3
|
+
self.table_name = :users
|
4
|
+
include ActivityNotification::Target
|
5
|
+
end
|
6
|
+
else
|
7
|
+
class Dummy::DummyTarget
|
8
|
+
include Mongoid::Document
|
9
|
+
include Mongoid::Timestamps
|
10
|
+
include ActivityNotification::Models
|
11
|
+
include ActivityNotification::Target
|
12
|
+
field :email, type: String, default: ""
|
13
|
+
field :name, type: String
|
14
|
+
end
|
4
15
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require File.expand_path('../boot', __FILE__)
|
2
2
|
|
3
|
-
#
|
3
|
+
# Load mongoid configuration if necessary:
|
4
4
|
if ENV['AN_ORM'] == 'mongoid'
|
5
5
|
require 'mongoid'
|
6
6
|
require 'rails'
|
@@ -8,7 +8,11 @@ if ENV['AN_ORM'] == 'mongoid'
|
|
8
8
|
Mongoid.load!(File.expand_path("config/mongoid.yml"), :development)
|
9
9
|
end
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
|
+
# Pick the frameworks you want:
|
13
|
+
unless ENV['AN_ORM'] == 'mongoid' && ENV['AN_TEST_DB'] == 'mongodb'
|
14
|
+
require "active_record/railtie"
|
15
|
+
end
|
12
16
|
require "action_controller/railtie"
|
13
17
|
require "action_mailer/railtie"
|
14
18
|
require "action_view/railtie"
|
@@ -21,7 +25,7 @@ require "activity_notification"
|
|
21
25
|
module Dummy
|
22
26
|
class Application < Rails::Application
|
23
27
|
# Do not swallow errors in after_commit/after_rollback callbacks.
|
24
|
-
if Rails::VERSION::MAJOR == 4 && Rails::VERSION::MINOR >= 2
|
28
|
+
if Rails::VERSION::MAJOR == 4 && Rails::VERSION::MINOR >= 2 && ENV['AN_TEST_DB'] != 'mongodb'
|
25
29
|
config.active_record.raise_in_transactional_callbacks = true
|
26
30
|
end
|
27
31
|
end
|
@@ -20,7 +20,9 @@ Rails.application.configure do
|
|
20
20
|
config.active_support.deprecation = :log
|
21
21
|
|
22
22
|
# Raise an error on page load if there are pending migrations.
|
23
|
-
|
23
|
+
unless ENV['AN_ORM'] == 'mongoid' && ENV['AN_TEST_DB'] == 'mongodb'
|
24
|
+
config.active_record.migration_error = :page_load
|
25
|
+
end
|
24
26
|
|
25
27
|
# Debug mode disables concatenation and preprocessing of assets.
|
26
28
|
# This option may cause significant delays in view rendering with a large
|
@@ -49,6 +49,9 @@ Rails.application.configure do
|
|
49
49
|
# Raises error for missing translations
|
50
50
|
# config.action_view.raise_on_missing_translations = true
|
51
51
|
|
52
|
-
#
|
52
|
+
# Use :test Active Job adapter for RSpec.
|
53
|
+
config.active_job.queue_adapter = :test
|
54
|
+
|
55
|
+
# Set default_url_options for devise and notification email.
|
53
56
|
config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
|
54
57
|
end
|
@@ -45,7 +45,7 @@ describe ActivityNotification::ActsAsNotifiable do
|
|
45
45
|
it "does not generate notifications when notifiable is created and updated" do
|
46
46
|
dummy_notifiable_class.acts_as_notifiable :users, targets: [user_target]
|
47
47
|
notifiable = dummy_notifiable_class.create
|
48
|
-
notifiable.update(created_at: notifiable.
|
48
|
+
notifiable.update(created_at: notifiable.updated_at)
|
49
49
|
expect(user_target.notifications.filtered_by_instance(notifiable).count).to eq(0)
|
50
50
|
end
|
51
51
|
end
|
@@ -71,7 +71,7 @@ describe ActivityNotification::ActsAsNotifiable do
|
|
71
71
|
before do
|
72
72
|
user_target.notifications.delete_all
|
73
73
|
expect(user_target.notifications.count).to eq(0)
|
74
|
-
@notifiable.update(created_at: @notifiable.
|
74
|
+
@notifiable.update(created_at: @notifiable.updated_at)
|
75
75
|
end
|
76
76
|
|
77
77
|
it "generates notifications when notifiable is updated" do
|
@@ -106,7 +106,7 @@ describe ActivityNotification::ActsAsNotifiable do
|
|
106
106
|
before do
|
107
107
|
user_target.notifications.delete_all
|
108
108
|
expect(user_target.notifications.count).to eq(0)
|
109
|
-
@notifiable.update(created_at: @notifiable.
|
109
|
+
@notifiable.update(created_at: @notifiable.updated_at)
|
110
110
|
end
|
111
111
|
|
112
112
|
it "does not generate notifications when notifiable is updated" do
|
@@ -136,7 +136,7 @@ describe ActivityNotification::ActsAsNotifiable do
|
|
136
136
|
before do
|
137
137
|
user_target.notifications.delete_all
|
138
138
|
expect(user_target.notifications.count).to eq(0)
|
139
|
-
@notifiable.update(created_at: @notifiable.
|
139
|
+
@notifiable.update(created_at: @notifiable.updated_at)
|
140
140
|
end
|
141
141
|
|
142
142
|
it "does not generate notifications when notifiable is updated" do
|
@@ -166,7 +166,7 @@ describe ActivityNotification::ActsAsNotifiable do
|
|
166
166
|
before do
|
167
167
|
user_target.notifications.delete_all
|
168
168
|
expect(user_target.notifications.count).to eq(0)
|
169
|
-
@notifiable.update(created_at: @notifiable.
|
169
|
+
@notifiable.update(created_at: @notifiable.updated_at)
|
170
170
|
end
|
171
171
|
|
172
172
|
it "generates notifications when notifiable is updated" do
|
@@ -248,7 +248,11 @@ describe ActivityNotification::ActsAsNotifiable do
|
|
248
248
|
it "can not be deleted when it has generated notifications" do
|
249
249
|
dummy_notifiable_class.acts_as_notifiable :users, dependent_notifications: :restrict_with_exception
|
250
250
|
expect(user_target.notifications.reload.size).to eq(3)
|
251
|
-
|
251
|
+
if ActivityNotification.config.orm == :active_record
|
252
|
+
expect { @notifiable_1.destroy }.to raise_error(ActiveRecord::DeleteRestrictionError)
|
253
|
+
else
|
254
|
+
expect { @notifiable_1.destroy }.to raise_error(RuntimeError)
|
255
|
+
end
|
252
256
|
end
|
253
257
|
end
|
254
258
|
|
data/spec/spec_helper.rb
CHANGED
@@ -37,9 +37,6 @@ require 'ammeter/init'
|
|
37
37
|
require 'factory_girl_rails'
|
38
38
|
require 'activity_notification'
|
39
39
|
|
40
|
-
# For active record ORM
|
41
|
-
require 'active_record'
|
42
|
-
|
43
40
|
def clear_database
|
44
41
|
[ActivityNotification::Notification, ActivityNotification::Subscription, Comment, Article, Admin, User].each do |model_class|
|
45
42
|
model_class.delete_all
|
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.
|
4
|
+
version: 1.4.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: 2017-05-
|
11
|
+
date: 2017-05-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -30,20 +30,6 @@ dependencies:
|
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '5.2'
|
33
|
-
- !ruby/object:Gem::Dependency
|
34
|
-
name: activerecord
|
35
|
-
requirement: !ruby/object:Gem::Requirement
|
36
|
-
requirements:
|
37
|
-
- - ">="
|
38
|
-
- !ruby/object:Gem::Version
|
39
|
-
version: 4.2.0
|
40
|
-
type: :runtime
|
41
|
-
prerelease: false
|
42
|
-
version_requirements: !ruby/object:Gem::Requirement
|
43
|
-
requirements:
|
44
|
-
- - ">="
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
version: 4.2.0
|
47
33
|
- !ruby/object:Gem::Dependency
|
48
34
|
name: i18n
|
49
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -134,14 +120,14 @@ dependencies:
|
|
134
120
|
requirements:
|
135
121
|
- - "~>"
|
136
122
|
- !ruby/object:Gem::Version
|
137
|
-
version: 3.
|
123
|
+
version: 3.6.0
|
138
124
|
type: :development
|
139
125
|
prerelease: false
|
140
126
|
version_requirements: !ruby/object:Gem::Requirement
|
141
127
|
requirements:
|
142
128
|
- - "~>"
|
143
129
|
- !ruby/object:Gem::Version
|
144
|
-
version: 3.
|
130
|
+
version: 3.6.0
|
145
131
|
- !ruby/object:Gem::Dependency
|
146
132
|
name: factory_girl_rails
|
147
133
|
requirement: !ruby/object:Gem::Requirement
|
@@ -204,14 +190,14 @@ dependencies:
|
|
204
190
|
requirements:
|
205
191
|
- - "~>"
|
206
192
|
- !ruby/object:Gem::Version
|
207
|
-
version: 4.
|
193
|
+
version: 4.3.0
|
208
194
|
type: :development
|
209
195
|
prerelease: false
|
210
196
|
version_requirements: !ruby/object:Gem::Requirement
|
211
197
|
requirements:
|
212
198
|
- - "~>"
|
213
199
|
- !ruby/object:Gem::Version
|
214
|
-
version: 4.
|
200
|
+
version: 4.3.0
|
215
201
|
- !ruby/object:Gem::Dependency
|
216
202
|
name: aws-sdk
|
217
203
|
requirement: !ruby/object:Gem::Requirement
|