activity_notification 1.4.0 → 1.4.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|