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.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/main.yml +82 -0
  3. data/CHANGELOG.md +52 -0
  4. data/Gemfile.rails-6.0 +1 -1
  5. data/Gemfile.rails-6.1 +15 -0
  6. data/Gemfile.rails-7.0 +10 -0
  7. data/README.md +39 -25
  8. data/lib/bullet/active_job.rb +1 -3
  9. data/lib/bullet/active_record4.rb +9 -23
  10. data/lib/bullet/active_record41.rb +8 -19
  11. data/lib/bullet/active_record42.rb +9 -16
  12. data/lib/bullet/active_record5.rb +188 -170
  13. data/lib/bullet/active_record52.rb +182 -162
  14. data/lib/bullet/active_record60.rb +191 -178
  15. data/lib/bullet/active_record61.rb +272 -0
  16. data/lib/bullet/active_record70.rb +275 -0
  17. data/lib/bullet/bullet_xhr.js +18 -23
  18. data/lib/bullet/dependency.rb +52 -34
  19. data/lib/bullet/detector/association.rb +24 -18
  20. data/lib/bullet/detector/counter_cache.rb +12 -8
  21. data/lib/bullet/detector/n_plus_one_query.rb +20 -10
  22. data/lib/bullet/detector/unused_eager_loading.rb +7 -4
  23. data/lib/bullet/mongoid4x.rb +3 -7
  24. data/lib/bullet/mongoid5x.rb +3 -7
  25. data/lib/bullet/mongoid6x.rb +3 -7
  26. data/lib/bullet/mongoid7x.rb +26 -13
  27. data/lib/bullet/notification/base.rb +14 -18
  28. data/lib/bullet/notification/n_plus_one_query.rb +2 -4
  29. data/lib/bullet/notification/unused_eager_loading.rb +2 -4
  30. data/lib/bullet/notification.rb +2 -1
  31. data/lib/bullet/rack.rb +28 -17
  32. data/lib/bullet/stack_trace_filter.rb +10 -17
  33. data/lib/bullet/version.rb +1 -1
  34. data/lib/bullet.rb +52 -42
  35. data/lib/generators/bullet/install_generator.rb +22 -23
  36. data/perf/benchmark.rb +11 -14
  37. data/spec/bullet/detector/counter_cache_spec.rb +6 -6
  38. data/spec/bullet/detector/n_plus_one_query_spec.rb +8 -4
  39. data/spec/bullet/detector/unused_eager_loading_spec.rb +25 -8
  40. data/spec/bullet/ext/object_spec.rb +1 -1
  41. data/spec/bullet/notification/base_spec.rb +5 -7
  42. data/spec/bullet/notification/n_plus_one_query_spec.rb +16 -3
  43. data/spec/bullet/notification/unused_eager_loading_spec.rb +5 -1
  44. data/spec/bullet/rack_spec.rb +154 -13
  45. data/spec/bullet/registry/association_spec.rb +2 -2
  46. data/spec/bullet/registry/base_spec.rb +1 -1
  47. data/spec/bullet_spec.rb +25 -44
  48. data/spec/integration/active_record/association_spec.rb +104 -130
  49. data/spec/integration/counter_cache_spec.rb +14 -34
  50. data/spec/integration/mongoid/association_spec.rb +19 -33
  51. data/spec/models/attachment.rb +5 -0
  52. data/spec/models/deal.rb +5 -0
  53. data/spec/models/post.rb +2 -0
  54. data/spec/models/role.rb +7 -0
  55. data/spec/models/submission.rb +1 -0
  56. data/spec/models/user.rb +2 -0
  57. data/spec/spec_helper.rb +4 -10
  58. data/spec/support/bullet_ext.rb +8 -9
  59. data/spec/support/mongo_seed.rb +3 -16
  60. data/spec/support/sqlite_seed.rb +38 -0
  61. data/test.sh +2 -0
  62. metadata +17 -7
  63. 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 do |post|
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 do |post|
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 do |post|
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(Mongoid::Category, :posts)
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 do |category|
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 do |post|
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 => commnets' do
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 do |post|
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 do |comment|
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 do |comment|
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 do |company|
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(Mongoid::Company, :address)
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 do |company|
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
 
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Attachment < ActiveRecord::Base
4
+ belongs_to :submission
5
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Deal < ActiveRecord::Base
4
+ has_and_belongs_to_many :posts
5
+ end
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
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class Role < ActiveRecord::Base
4
+ has_and_belongs_to_many :users
5
+
6
+ belongs_to :resource, polymorphic: true
7
+ end
@@ -3,4 +3,5 @@
3
3
  class Submission < ActiveRecord::Base
4
4
  belongs_to :user
5
5
  has_many :replies
6
+ has_one :attachment
6
7
  end
data/spec/models/user.rb CHANGED
@@ -2,5 +2,7 @@
2
2
 
3
3
  class User < ActiveRecord::Base
4
4
  has_one :submission
5
+ has_one :submission_attachment, through: :submission, source: :attachment, class_name: 'Attachment'
5
6
  belongs_to :category
7
+ has_and_belongs_to_many :roles
6
8
  end
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) do
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) do
91
- Bullet.start_request
92
- end
88
+ config.before(:each) { Bullet.start_request }
93
89
 
94
- config.after(:each) do
95
- Bullet.end_request
96
- end
90
+ config.after(:each) { Bullet.end_request }
97
91
  end
98
92
 
99
93
  if ENV['BULLET_LOG']
@@ -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 do |notification|
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? && object_associations[object.bullet_key].include?(association)
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 { |notification|
42
+ Bullet.collected_n_plus_one_query_notifications.select do |notification|
44
43
  notification.base_class == klass.to_s && notification.associations.include?(association)
45
- }.present?
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 { |notification|
49
+ Bullet.collected_unused_eager_association_notifications.select do |notification|
51
50
  notification.base_class == klass.to_s && notification.associations.include?(association)
52
- }.present?
51
+ end.present?
53
52
  end
54
53
  end
55
54
  end
@@ -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
@@ -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: 6.0.2
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: 2019-08-20 00:00:00.000000000 Z
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.0.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