bullet 6.0.2 → 7.0.3
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/.github/workflows/main.yml +82 -0
- data/CHANGELOG.md +52 -0
- data/Gemfile.rails-6.0 +1 -1
- data/Gemfile.rails-6.1 +15 -0
- data/Gemfile.rails-7.0 +10 -0
- data/README.md +39 -25
- data/lib/bullet/active_job.rb +1 -3
- data/lib/bullet/active_record4.rb +9 -23
- data/lib/bullet/active_record41.rb +8 -19
- data/lib/bullet/active_record42.rb +9 -16
- data/lib/bullet/active_record5.rb +188 -170
- data/lib/bullet/active_record52.rb +182 -162
- data/lib/bullet/active_record60.rb +191 -178
- data/lib/bullet/active_record61.rb +272 -0
- data/lib/bullet/active_record70.rb +275 -0
- data/lib/bullet/bullet_xhr.js +18 -23
- data/lib/bullet/dependency.rb +52 -34
- data/lib/bullet/detector/association.rb +24 -18
- data/lib/bullet/detector/counter_cache.rb +12 -8
- data/lib/bullet/detector/n_plus_one_query.rb +20 -10
- data/lib/bullet/detector/unused_eager_loading.rb +7 -4
- data/lib/bullet/mongoid4x.rb +3 -7
- data/lib/bullet/mongoid5x.rb +3 -7
- data/lib/bullet/mongoid6x.rb +3 -7
- data/lib/bullet/mongoid7x.rb +26 -13
- data/lib/bullet/notification/base.rb +14 -18
- data/lib/bullet/notification/n_plus_one_query.rb +2 -4
- data/lib/bullet/notification/unused_eager_loading.rb +2 -4
- data/lib/bullet/notification.rb +2 -1
- data/lib/bullet/rack.rb +28 -17
- data/lib/bullet/stack_trace_filter.rb +10 -17
- data/lib/bullet/version.rb +1 -1
- data/lib/bullet.rb +52 -42
- data/lib/generators/bullet/install_generator.rb +22 -23
- data/perf/benchmark.rb +11 -14
- data/spec/bullet/detector/counter_cache_spec.rb +6 -6
- data/spec/bullet/detector/n_plus_one_query_spec.rb +8 -4
- data/spec/bullet/detector/unused_eager_loading_spec.rb +25 -8
- data/spec/bullet/ext/object_spec.rb +1 -1
- data/spec/bullet/notification/base_spec.rb +5 -7
- data/spec/bullet/notification/n_plus_one_query_spec.rb +16 -3
- data/spec/bullet/notification/unused_eager_loading_spec.rb +5 -1
- data/spec/bullet/rack_spec.rb +154 -13
- data/spec/bullet/registry/association_spec.rb +2 -2
- data/spec/bullet/registry/base_spec.rb +1 -1
- data/spec/bullet_spec.rb +25 -44
- data/spec/integration/active_record/association_spec.rb +104 -130
- data/spec/integration/counter_cache_spec.rb +14 -34
- data/spec/integration/mongoid/association_spec.rb +19 -33
- data/spec/models/attachment.rb +5 -0
- data/spec/models/deal.rb +5 -0
- data/spec/models/post.rb +2 -0
- data/spec/models/role.rb +7 -0
- data/spec/models/submission.rb +1 -0
- data/spec/models/user.rb +2 -0
- data/spec/spec_helper.rb +4 -10
- data/spec/support/bullet_ext.rb +8 -9
- data/spec/support/mongo_seed.rb +3 -16
- data/spec/support/sqlite_seed.rb +38 -0
- data/test.sh +2 -0
- metadata +17 -7
- data/.travis.yml +0 -31
@@ -7,9 +7,7 @@ if mongoid?
|
|
7
7
|
context 'embeds_many' do
|
8
8
|
context 'posts => users' do
|
9
9
|
it 'should detect nothing' do
|
10
|
-
Mongoid::Post.all.each
|
11
|
-
post.users.map(&:name)
|
12
|
-
end
|
10
|
+
Mongoid::Post.all.each { |post| post.users.map(&:name) }
|
13
11
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
14
12
|
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
15
13
|
|
@@ -21,9 +19,7 @@ if mongoid?
|
|
21
19
|
context 'has_many' do
|
22
20
|
context 'posts => comments' do
|
23
21
|
it 'should detect non preload posts => comments' do
|
24
|
-
Mongoid::Post.all.each
|
25
|
-
post.comments.map(&:name)
|
26
|
-
end
|
22
|
+
Mongoid::Post.all.each { |post| post.comments.map(&:name) }
|
27
23
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
28
24
|
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
29
25
|
|
@@ -31,9 +27,7 @@ if mongoid?
|
|
31
27
|
end
|
32
28
|
|
33
29
|
it 'should detect preload post => comments' do
|
34
|
-
Mongoid::Post.includes(:comments).each
|
35
|
-
post.comments.map(&:name)
|
36
|
-
end
|
30
|
+
Mongoid::Post.includes(:comments).each { |post| post.comments.map(&:name) }
|
37
31
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
38
32
|
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
39
33
|
|
@@ -78,7 +72,10 @@ if mongoid?
|
|
78
72
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
79
73
|
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
80
74
|
|
81
|
-
expect(Bullet::Detector::Association).not_to be_detecting_unpreloaded_association_for(
|
75
|
+
expect(Bullet::Detector::Association).not_to be_detecting_unpreloaded_association_for(
|
76
|
+
Mongoid::Category,
|
77
|
+
:posts
|
78
|
+
)
|
82
79
|
expect(Bullet::Detector::Association).to be_detecting_unpreloaded_association_for(Mongoid::Category, :entries)
|
83
80
|
end
|
84
81
|
|
@@ -103,9 +100,7 @@ if mongoid?
|
|
103
100
|
end
|
104
101
|
|
105
102
|
it 'should detect unused preload with category => entries, but not with category => posts' do
|
106
|
-
Mongoid::Category.includes(:posts, :entries).each
|
107
|
-
category.posts.map(&:name)
|
108
|
-
end
|
103
|
+
Mongoid::Category.includes(:posts, :entries).each { |category| category.posts.map(&:name) }
|
109
104
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
110
105
|
expect(Bullet::Detector::Association).not_to be_unused_preload_associations_for(Mongoid::Category, :posts)
|
111
106
|
expect(Bullet::Detector::Association).to be_unused_preload_associations_for(Mongoid::Category, :entries)
|
@@ -116,16 +111,14 @@ if mongoid?
|
|
116
111
|
|
117
112
|
context 'post => comment' do
|
118
113
|
it 'should detect unused preload with post => comments' do
|
119
|
-
Mongoid::Post.includes(:comments).each
|
120
|
-
post.comments.first.name
|
121
|
-
end
|
114
|
+
Mongoid::Post.includes(:comments).each { |post| post.comments.first.name }
|
122
115
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
123
116
|
expect(Bullet::Detector::Association).not_to be_unused_preload_associations_for(Mongoid::Post, :comments)
|
124
117
|
|
125
118
|
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
126
119
|
end
|
127
120
|
|
128
|
-
it 'should detect preload with post =>
|
121
|
+
it 'should detect preload with post => comments' do
|
129
122
|
Mongoid::Post.first.comments.map(&:name)
|
130
123
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
131
124
|
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
@@ -136,9 +129,7 @@ if mongoid?
|
|
136
129
|
|
137
130
|
context 'scope preload_comments' do
|
138
131
|
it 'should detect preload post => comments with scope' do
|
139
|
-
Mongoid::Post.preload_comments.each
|
140
|
-
post.comments.map(&:name)
|
141
|
-
end
|
132
|
+
Mongoid::Post.preload_comments.each { |post| post.comments.map(&:name) }
|
142
133
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
143
134
|
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
144
135
|
|
@@ -158,9 +149,7 @@ if mongoid?
|
|
158
149
|
context 'belongs_to' do
|
159
150
|
context 'comment => post' do
|
160
151
|
it 'should detect non preload with comment => post' do
|
161
|
-
Mongoid::Comment.all.each
|
162
|
-
comment.post.name
|
163
|
-
end
|
152
|
+
Mongoid::Comment.all.each { |comment| comment.post.name }
|
164
153
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
165
154
|
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
166
155
|
|
@@ -176,9 +165,7 @@ if mongoid?
|
|
176
165
|
end
|
177
166
|
|
178
167
|
it 'should detect preload with comment => post' do
|
179
|
-
Mongoid::Comment.includes(:post).each
|
180
|
-
comment.post.name
|
181
|
-
end
|
168
|
+
Mongoid::Comment.includes(:post).each { |comment| comment.post.name }
|
182
169
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
183
170
|
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
184
171
|
|
@@ -207,20 +194,19 @@ if mongoid?
|
|
207
194
|
context 'company => address' do
|
208
195
|
if Mongoid::VERSION !~ /\A3.0/
|
209
196
|
it 'should detect non preload association' do
|
210
|
-
Mongoid::Company.all.each
|
211
|
-
company.address.name
|
212
|
-
end
|
197
|
+
Mongoid::Company.all.each { |company| company.address.name }
|
213
198
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
214
199
|
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
215
200
|
|
216
|
-
expect(Bullet::Detector::Association).to be_detecting_unpreloaded_association_for(
|
201
|
+
expect(Bullet::Detector::Association).to be_detecting_unpreloaded_association_for(
|
202
|
+
Mongoid::Company,
|
203
|
+
:address
|
204
|
+
)
|
217
205
|
end
|
218
206
|
end
|
219
207
|
|
220
208
|
it 'should detect preload association' do
|
221
|
-
Mongoid::Company.includes(:address).each
|
222
|
-
company.address.name
|
223
|
-
end
|
209
|
+
Mongoid::Company.includes(:address).each { |company| company.address.name }
|
224
210
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
225
211
|
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
226
212
|
|
data/spec/models/deal.rb
ADDED
data/spec/models/post.rb
CHANGED
@@ -4,6 +4,7 @@ class Post < ActiveRecord::Base
|
|
4
4
|
belongs_to :category, inverse_of: :posts
|
5
5
|
belongs_to :writer
|
6
6
|
has_many :comments, inverse_of: :post
|
7
|
+
has_and_belongs_to_many :deals
|
7
8
|
|
8
9
|
validates :category, presence: true
|
9
10
|
|
@@ -21,6 +22,7 @@ class Post < ActiveRecord::Base
|
|
21
22
|
next unless trigger_after_save
|
22
23
|
|
23
24
|
temp_comment = Comment.new(post: self)
|
25
|
+
|
24
26
|
# this triggers self to be "possible", even though it's
|
25
27
|
# not saved yet
|
26
28
|
temp_comment.post
|
data/spec/models/role.rb
ADDED
data/spec/models/submission.rb
CHANGED
data/spec/models/user.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -11,7 +11,7 @@ rescue LoadError
|
|
11
11
|
end
|
12
12
|
|
13
13
|
module Rails
|
14
|
-
class <<self
|
14
|
+
class << self
|
15
15
|
def root
|
16
16
|
File.expand_path(__FILE__).split('/')[0..-3].join('/')
|
17
17
|
end
|
@@ -60,9 +60,7 @@ if active_record?
|
|
60
60
|
Bullet.enable = true
|
61
61
|
end
|
62
62
|
|
63
|
-
config.after(:example)
|
64
|
-
Bullet.end_request
|
65
|
-
end
|
63
|
+
config.after(:example) { Bullet.end_request }
|
66
64
|
end
|
67
65
|
|
68
66
|
if ENV['BULLET_LOG']
|
@@ -87,13 +85,9 @@ if mongoid?
|
|
87
85
|
Support::MongoSeed.teardown_db
|
88
86
|
end
|
89
87
|
|
90
|
-
config.before(:each)
|
91
|
-
Bullet.start_request
|
92
|
-
end
|
88
|
+
config.before(:each) { Bullet.start_request }
|
93
89
|
|
94
|
-
config.after(:each)
|
95
|
-
Bullet.end_request
|
96
|
-
end
|
90
|
+
config.after(:each) { Bullet.end_request }
|
97
91
|
end
|
98
92
|
|
99
93
|
if ENV['BULLET_LOG']
|
data/spec/support/bullet_ext.rb
CHANGED
@@ -2,9 +2,7 @@
|
|
2
2
|
|
3
3
|
module Bullet
|
4
4
|
def self.collected_notifications_of_class(notification_class)
|
5
|
-
Bullet.notification_collector.collection.select
|
6
|
-
notification.is_a? notification_class
|
7
|
-
end
|
5
|
+
Bullet.notification_collector.collection.select { |notification| notification.is_a? notification_class }
|
8
6
|
end
|
9
7
|
|
10
8
|
def self.collected_counter_cache_notifications
|
@@ -23,7 +21,7 @@ end
|
|
23
21
|
module Bullet
|
24
22
|
module Detector
|
25
23
|
class Association
|
26
|
-
class <<self
|
24
|
+
class << self
|
27
25
|
# returns true if all associations are preloaded
|
28
26
|
def completely_preloading_associations?
|
29
27
|
Bullet.collected_n_plus_one_query_notifications.empty?
|
@@ -35,21 +33,22 @@ module Bullet
|
|
35
33
|
|
36
34
|
# returns true if a given object has a specific association
|
37
35
|
def creating_object_association_for?(object, association)
|
38
|
-
object_associations[object.bullet_key].present? &&
|
36
|
+
object_associations[object.bullet_key].present? &&
|
37
|
+
object_associations[object.bullet_key].include?(association)
|
39
38
|
end
|
40
39
|
|
41
40
|
# returns true if a given class includes the specific unpreloaded association
|
42
41
|
def detecting_unpreloaded_association_for?(klass, association)
|
43
|
-
Bullet.collected_n_plus_one_query_notifications.select
|
42
|
+
Bullet.collected_n_plus_one_query_notifications.select do |notification|
|
44
43
|
notification.base_class == klass.to_s && notification.associations.include?(association)
|
45
|
-
|
44
|
+
end.present?
|
46
45
|
end
|
47
46
|
|
48
47
|
# returns true if the given class includes the specific unused preloaded association
|
49
48
|
def unused_preload_associations_for?(klass, association)
|
50
|
-
Bullet.collected_unused_eager_association_notifications.select
|
49
|
+
Bullet.collected_unused_eager_association_notifications.select do |notification|
|
51
50
|
notification.base_class == klass.to_s && notification.associations.include?(association)
|
52
|
-
|
51
|
+
end.present?
|
53
52
|
end
|
54
53
|
end
|
55
54
|
end
|
data/spec/support/mongo_seed.rb
CHANGED
@@ -39,26 +39,13 @@ module Support
|
|
39
39
|
def setup_db
|
40
40
|
if Mongoid::VERSION =~ /\A4/
|
41
41
|
Mongoid.configure do |config|
|
42
|
-
config.load_configuration(
|
43
|
-
sessions: {
|
44
|
-
default: {
|
45
|
-
database: 'bullet',
|
46
|
-
hosts: ['localhost:27017']
|
47
|
-
}
|
48
|
-
}
|
49
|
-
)
|
42
|
+
config.load_configuration(sessions: { default: { database: 'bullet', hosts: %w[localhost:27017] } })
|
50
43
|
end
|
51
44
|
else
|
52
45
|
Mongoid.configure do |config|
|
53
|
-
config.load_configuration(
|
54
|
-
clients: {
|
55
|
-
default: {
|
56
|
-
database: 'bullet',
|
57
|
-
hosts: ['localhost:27017']
|
58
|
-
}
|
59
|
-
}
|
60
|
-
)
|
46
|
+
config.load_configuration(clients: { default: { database: 'bullet', hosts: %w[localhost:27017] } })
|
61
47
|
end
|
48
|
+
|
62
49
|
# Increase the level from DEBUG in order to avoid excessive logging to the screen
|
63
50
|
Mongo::Logger.logger.level = Logger::WARN
|
64
51
|
end
|
data/spec/support/sqlite_seed.rb
CHANGED
@@ -21,6 +21,13 @@ module Support
|
|
21
21
|
post2 = category2.posts.create(name: 'second', writer: writer2)
|
22
22
|
post3 = category2.posts.create(name: 'third', writer: writer2)
|
23
23
|
|
24
|
+
deal1 = Deal.new(name: 'Deal 1')
|
25
|
+
deal1.posts << post1
|
26
|
+
deal1.posts << post2
|
27
|
+
deal2 = Deal.new(name: 'Deal 2')
|
28
|
+
post1.deals << deal1
|
29
|
+
post1.deals << deal2
|
30
|
+
|
24
31
|
comment1 = post1.comments.create(name: 'first', author: writer1)
|
25
32
|
comment2 = post1.comments.create(name: 'first2', author: writer1)
|
26
33
|
comment3 = post1.comments.create(name: 'first3', author: writer1)
|
@@ -85,9 +92,16 @@ module Support
|
|
85
92
|
page3 = Page.create(name: 'page3', parent_id: folder2.id, author_id: author2.id)
|
86
93
|
page4 = Page.create(name: 'page4', parent_id: folder2.id, author_id: author2.id)
|
87
94
|
|
95
|
+
role1 = Role.create(name: 'Admin')
|
96
|
+
role2 = Role.create(name: 'User')
|
97
|
+
|
88
98
|
user1 = User.create(name: 'user1', category: category1)
|
89
99
|
user2 = User.create(name: 'user2', category: category1)
|
90
100
|
|
101
|
+
user1.roles << role1
|
102
|
+
user1.roles << role2
|
103
|
+
user2.roles << role2
|
104
|
+
|
91
105
|
submission1 = user1.create_submission(name: 'submission1')
|
92
106
|
submission2 = user2.create_submission(name: 'submission2')
|
93
107
|
|
@@ -95,6 +109,9 @@ module Support
|
|
95
109
|
submission1.replies.create(name: 'reply2')
|
96
110
|
submission2.replies.create(name: 'reply3')
|
97
111
|
submission2.replies.create(name: 'reply4')
|
112
|
+
|
113
|
+
submission1.create_attachment(file_name: 'submission1 file')
|
114
|
+
submission2.create_attachment(file_name: 'submission2 file')
|
98
115
|
end
|
99
116
|
|
100
117
|
def setup_db
|
@@ -153,6 +170,11 @@ module Support
|
|
153
170
|
t.column :hotel_id, :integer
|
154
171
|
end
|
155
172
|
|
173
|
+
create_table :deals_posts do |t|
|
174
|
+
t.column :deal_id, :integer
|
175
|
+
t.column :post_id, :integer
|
176
|
+
end
|
177
|
+
|
156
178
|
create_table :documents do |t|
|
157
179
|
t.string :name
|
158
180
|
t.string :type
|
@@ -231,6 +253,17 @@ module Support
|
|
231
253
|
t.column :submission_id, :integer
|
232
254
|
end
|
233
255
|
|
256
|
+
create_table :roles do |t|
|
257
|
+
t.column :name, :string
|
258
|
+
t.column :resource_id, :integer
|
259
|
+
t.column :resource_type, :string
|
260
|
+
end
|
261
|
+
|
262
|
+
create_table :roles_users do |t|
|
263
|
+
t.column :role_id, :integer
|
264
|
+
t.column :user_id, :integer
|
265
|
+
end
|
266
|
+
|
234
267
|
create_table :submissions do |t|
|
235
268
|
t.column :name, :string
|
236
269
|
t.column :user_id, :integer
|
@@ -240,6 +273,11 @@ module Support
|
|
240
273
|
t.column :name, :string
|
241
274
|
t.column :category_id, :integer
|
242
275
|
end
|
276
|
+
|
277
|
+
create_table :attachments do |t|
|
278
|
+
t.column :file_name, :string
|
279
|
+
t.column :submission_id, :integer
|
280
|
+
end
|
243
281
|
end
|
244
282
|
end
|
245
283
|
end
|
data/test.sh
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
#bundle update rails && bundle exec rspec spec
|
2
2
|
#BUNDLE_GEMFILE=Gemfile.mongoid bundle update mongoid && BUNDLE_GEMFILE=Gemfile.mongoid bundle exec rspec spec
|
3
|
+
BUNDLE_GEMFILE=Gemfile.rails-7.0 bundle && BUNDLE_GEMFILE=Gemfile.rails-7.0 bundle exec rspec spec
|
4
|
+
BUNDLE_GEMFILE=Gemfile.rails-6.1 bundle && BUNDLE_GEMFILE=Gemfile.rails-6.1 bundle exec rspec spec
|
3
5
|
BUNDLE_GEMFILE=Gemfile.rails-6.0 bundle && BUNDLE_GEMFILE=Gemfile.rails-6.0 bundle exec rspec spec
|
4
6
|
BUNDLE_GEMFILE=Gemfile.rails-5.2 bundle && BUNDLE_GEMFILE=Gemfile.rails-5.2 bundle exec rspec spec
|
5
7
|
BUNDLE_GEMFILE=Gemfile.rails-5.1 bundle && BUNDLE_GEMFILE=Gemfile.rails-5.1 bundle exec rspec spec
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bullet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 7.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Richard Huang
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-08-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -45,9 +45,9 @@ executables: []
|
|
45
45
|
extensions: []
|
46
46
|
extra_rdoc_files: []
|
47
47
|
files:
|
48
|
+
- ".github/workflows/main.yml"
|
48
49
|
- ".gitignore"
|
49
50
|
- ".rspec"
|
50
|
-
- ".travis.yml"
|
51
51
|
- CHANGELOG.md
|
52
52
|
- Gemfile
|
53
53
|
- Gemfile.mongoid
|
@@ -62,6 +62,8 @@ files:
|
|
62
62
|
- Gemfile.rails-5.1
|
63
63
|
- Gemfile.rails-5.2
|
64
64
|
- Gemfile.rails-6.0
|
65
|
+
- Gemfile.rails-6.1
|
66
|
+
- Gemfile.rails-7.0
|
65
67
|
- Guardfile
|
66
68
|
- Hacking.md
|
67
69
|
- MIT-LICENSE
|
@@ -76,6 +78,8 @@ files:
|
|
76
78
|
- lib/bullet/active_record5.rb
|
77
79
|
- lib/bullet/active_record52.rb
|
78
80
|
- lib/bullet/active_record60.rb
|
81
|
+
- lib/bullet/active_record61.rb
|
82
|
+
- lib/bullet/active_record70.rb
|
79
83
|
- lib/bullet/bullet_xhr.js
|
80
84
|
- lib/bullet/dependency.rb
|
81
85
|
- lib/bullet/detector.rb
|
@@ -127,6 +131,7 @@ files:
|
|
127
131
|
- spec/integration/counter_cache_spec.rb
|
128
132
|
- spec/integration/mongoid/association_spec.rb
|
129
133
|
- spec/models/address.rb
|
134
|
+
- spec/models/attachment.rb
|
130
135
|
- spec/models/author.rb
|
131
136
|
- spec/models/base_user.rb
|
132
137
|
- spec/models/category.rb
|
@@ -135,6 +140,7 @@ files:
|
|
135
140
|
- spec/models/comment.rb
|
136
141
|
- spec/models/company.rb
|
137
142
|
- spec/models/country.rb
|
143
|
+
- spec/models/deal.rb
|
138
144
|
- spec/models/document.rb
|
139
145
|
- spec/models/entry.rb
|
140
146
|
- spec/models/firm.rb
|
@@ -154,6 +160,7 @@ files:
|
|
154
160
|
- spec/models/post.rb
|
155
161
|
- spec/models/relationship.rb
|
156
162
|
- spec/models/reply.rb
|
163
|
+
- spec/models/role.rb
|
157
164
|
- spec/models/student.rb
|
158
165
|
- spec/models/submission.rb
|
159
166
|
- spec/models/teacher.rb
|
@@ -173,7 +180,7 @@ licenses:
|
|
173
180
|
metadata:
|
174
181
|
changelog_uri: https://github.com/flyerhzm/bullet/blob/master/CHANGELOG.md
|
175
182
|
source_code_uri: https://github.com/flyerhzm/bullet
|
176
|
-
post_install_message:
|
183
|
+
post_install_message:
|
177
184
|
rdoc_options: []
|
178
185
|
require_paths:
|
179
186
|
- lib
|
@@ -188,8 +195,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
188
195
|
- !ruby/object:Gem::Version
|
189
196
|
version: 1.3.6
|
190
197
|
requirements: []
|
191
|
-
rubygems_version: 3.
|
192
|
-
signing_key:
|
198
|
+
rubygems_version: 3.3.7
|
199
|
+
signing_key:
|
193
200
|
specification_version: 4
|
194
201
|
summary: help to kill N+1 queries and unused eager loading.
|
195
202
|
test_files:
|
@@ -214,6 +221,7 @@ test_files:
|
|
214
221
|
- spec/integration/counter_cache_spec.rb
|
215
222
|
- spec/integration/mongoid/association_spec.rb
|
216
223
|
- spec/models/address.rb
|
224
|
+
- spec/models/attachment.rb
|
217
225
|
- spec/models/author.rb
|
218
226
|
- spec/models/base_user.rb
|
219
227
|
- spec/models/category.rb
|
@@ -222,6 +230,7 @@ test_files:
|
|
222
230
|
- spec/models/comment.rb
|
223
231
|
- spec/models/company.rb
|
224
232
|
- spec/models/country.rb
|
233
|
+
- spec/models/deal.rb
|
225
234
|
- spec/models/document.rb
|
226
235
|
- spec/models/entry.rb
|
227
236
|
- spec/models/firm.rb
|
@@ -241,6 +250,7 @@ test_files:
|
|
241
250
|
- spec/models/post.rb
|
242
251
|
- spec/models/relationship.rb
|
243
252
|
- spec/models/reply.rb
|
253
|
+
- spec/models/role.rb
|
244
254
|
- spec/models/student.rb
|
245
255
|
- spec/models/submission.rb
|
246
256
|
- spec/models/teacher.rb
|
data/.travis.yml
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
sudo: false
|
2
|
-
language: ruby
|
3
|
-
rvm:
|
4
|
-
- 2.3.0
|
5
|
-
- 2.6.0
|
6
|
-
gemfile:
|
7
|
-
- Gemfile.rails-6.0
|
8
|
-
- Gemfile.rails-5.2
|
9
|
-
- Gemfile.rails-5.1
|
10
|
-
- Gemfile.rails-5.0
|
11
|
-
- Gemfile.rails-4.2
|
12
|
-
- Gemfile.rails-4.1
|
13
|
-
- Gemfile.rails-4.0
|
14
|
-
matrix:
|
15
|
-
exclude:
|
16
|
-
- rvm: 2.3.0
|
17
|
-
gemfile: Gemfile.rails-6.0
|
18
|
-
- rvm: 2.6.0
|
19
|
-
gemfile: Gemfile.rails-5.2
|
20
|
-
- rvm: 2.6.0
|
21
|
-
gemfile: Gemfile.rails-5.1
|
22
|
-
- rvm: 2.6.0
|
23
|
-
gemfile: Gemfile.rails-5.0
|
24
|
-
- rvm: 2.6.0
|
25
|
-
gemfile: Gemfile.rails-4.2
|
26
|
-
- rvm: 2.6.0
|
27
|
-
gemfile: Gemfile.rails-4.1
|
28
|
-
- rvm: 2.6.0
|
29
|
-
gemfile: Gemfile.rails-4.0
|
30
|
-
env:
|
31
|
-
- DB=sqlite
|