bullet 7.0.7 → 7.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -1
  3. data/README.md +3 -0
  4. data/lib/bullet/active_record4.rb +9 -0
  5. data/lib/bullet/active_record41.rb +9 -0
  6. data/lib/bullet/active_record42.rb +9 -0
  7. data/lib/bullet/active_record5.rb +11 -0
  8. data/lib/bullet/active_record52.rb +11 -0
  9. data/lib/bullet/active_record60.rb +11 -0
  10. data/lib/bullet/active_record61.rb +11 -0
  11. data/lib/bullet/active_record70.rb +19 -6
  12. data/lib/bullet/active_record71.rb +297 -0
  13. data/lib/bullet/dependency.rb +12 -0
  14. data/lib/bullet/detector/unused_eager_loading.rb +1 -1
  15. data/lib/bullet/mongoid8x.rb +59 -0
  16. data/lib/bullet/notification/counter_cache.rb +1 -1
  17. data/lib/bullet/rack.rb +1 -1
  18. data/lib/bullet/version.rb +1 -1
  19. data/lib/bullet.rb +5 -1
  20. metadata +7 -155
  21. data/.github/workflows/main.yml +0 -82
  22. data/.gitignore +0 -15
  23. data/.rspec +0 -2
  24. data/Gemfile +0 -24
  25. data/Gemfile.mongoid +0 -12
  26. data/Gemfile.mongoid-4.0 +0 -15
  27. data/Gemfile.mongoid-5.0 +0 -15
  28. data/Gemfile.mongoid-6.0 +0 -15
  29. data/Gemfile.mongoid-7.0 +0 -15
  30. data/Gemfile.rails-4.0 +0 -16
  31. data/Gemfile.rails-4.1 +0 -16
  32. data/Gemfile.rails-4.2 +0 -16
  33. data/Gemfile.rails-5.0 +0 -15
  34. data/Gemfile.rails-5.1 +0 -15
  35. data/Gemfile.rails-5.2 +0 -15
  36. data/Gemfile.rails-6.0 +0 -15
  37. data/Gemfile.rails-6.1 +0 -15
  38. data/Gemfile.rails-7.0 +0 -10
  39. data/Guardfile +0 -8
  40. data/Hacking.md +0 -75
  41. data/Rakefile +0 -51
  42. data/bullet.gemspec +0 -33
  43. data/perf/benchmark.rb +0 -118
  44. data/rails/init.rb +0 -3
  45. data/spec/bullet/detector/association_spec.rb +0 -28
  46. data/spec/bullet/detector/base_spec.rb +0 -10
  47. data/spec/bullet/detector/counter_cache_spec.rb +0 -58
  48. data/spec/bullet/detector/n_plus_one_query_spec.rb +0 -150
  49. data/spec/bullet/detector/unused_eager_loading_spec.rb +0 -126
  50. data/spec/bullet/ext/object_spec.rb +0 -44
  51. data/spec/bullet/ext/string_spec.rb +0 -15
  52. data/spec/bullet/notification/base_spec.rb +0 -94
  53. data/spec/bullet/notification/counter_cache_spec.rb +0 -14
  54. data/spec/bullet/notification/n_plus_one_query_spec.rb +0 -29
  55. data/spec/bullet/notification/unused_eager_loading_spec.rb +0 -18
  56. data/spec/bullet/notification_collector_spec.rb +0 -34
  57. data/spec/bullet/rack_spec.rb +0 -296
  58. data/spec/bullet/registry/association_spec.rb +0 -28
  59. data/spec/bullet/registry/base_spec.rb +0 -46
  60. data/spec/bullet/registry/object_spec.rb +0 -26
  61. data/spec/bullet/stack_trace_filter_spec.rb +0 -26
  62. data/spec/bullet_spec.rb +0 -136
  63. data/spec/integration/active_record/association_spec.rb +0 -822
  64. data/spec/integration/counter_cache_spec.rb +0 -68
  65. data/spec/integration/mongoid/association_spec.rb +0 -246
  66. data/spec/models/address.rb +0 -5
  67. data/spec/models/attachment.rb +0 -5
  68. data/spec/models/author.rb +0 -5
  69. data/spec/models/base_user.rb +0 -7
  70. data/spec/models/category.rb +0 -12
  71. data/spec/models/city.rb +0 -5
  72. data/spec/models/client.rb +0 -8
  73. data/spec/models/comment.rb +0 -8
  74. data/spec/models/company.rb +0 -5
  75. data/spec/models/country.rb +0 -5
  76. data/spec/models/deal.rb +0 -5
  77. data/spec/models/document.rb +0 -7
  78. data/spec/models/entry.rb +0 -5
  79. data/spec/models/firm.rb +0 -7
  80. data/spec/models/folder.rb +0 -4
  81. data/spec/models/group.rb +0 -4
  82. data/spec/models/mongoid/address.rb +0 -9
  83. data/spec/models/mongoid/category.rb +0 -10
  84. data/spec/models/mongoid/comment.rb +0 -9
  85. data/spec/models/mongoid/company.rb +0 -9
  86. data/spec/models/mongoid/entry.rb +0 -9
  87. data/spec/models/mongoid/post.rb +0 -14
  88. data/spec/models/mongoid/user.rb +0 -7
  89. data/spec/models/newspaper.rb +0 -5
  90. data/spec/models/page.rb +0 -4
  91. data/spec/models/person.rb +0 -5
  92. data/spec/models/pet.rb +0 -5
  93. data/spec/models/post.rb +0 -34
  94. data/spec/models/relationship.rb +0 -6
  95. data/spec/models/reply.rb +0 -5
  96. data/spec/models/role.rb +0 -7
  97. data/spec/models/student.rb +0 -5
  98. data/spec/models/submission.rb +0 -7
  99. data/spec/models/teacher.rb +0 -5
  100. data/spec/models/user.rb +0 -8
  101. data/spec/models/writer.rb +0 -4
  102. data/spec/spec_helper.rb +0 -97
  103. data/spec/support/bullet_ext.rb +0 -56
  104. data/spec/support/mongo_seed.rb +0 -59
  105. data/spec/support/rack_double.rb +0 -49
  106. data/spec/support/sqlite_seed.rb +0 -284
  107. data/test.sh +0 -15
  108. data/update.sh +0 -10
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: 7.0.7
4
+ version: 7.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Huang
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-03 00:00:00.000000000 Z
11
+ date: 2023-10-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -45,31 +45,9 @@ executables: []
45
45
  extensions: []
46
46
  extra_rdoc_files: []
47
47
  files:
48
- - ".github/workflows/main.yml"
49
- - ".gitignore"
50
- - ".rspec"
51
48
  - CHANGELOG.md
52
- - Gemfile
53
- - Gemfile.mongoid
54
- - Gemfile.mongoid-4.0
55
- - Gemfile.mongoid-5.0
56
- - Gemfile.mongoid-6.0
57
- - Gemfile.mongoid-7.0
58
- - Gemfile.rails-4.0
59
- - Gemfile.rails-4.1
60
- - Gemfile.rails-4.2
61
- - Gemfile.rails-5.0
62
- - Gemfile.rails-5.1
63
- - Gemfile.rails-5.2
64
- - Gemfile.rails-6.0
65
- - Gemfile.rails-6.1
66
- - Gemfile.rails-7.0
67
- - Guardfile
68
- - Hacking.md
69
49
  - MIT-LICENSE
70
50
  - README.md
71
- - Rakefile
72
- - bullet.gemspec
73
51
  - lib/bullet.rb
74
52
  - lib/bullet/active_job.rb
75
53
  - lib/bullet/active_record4.rb
@@ -80,6 +58,7 @@ files:
80
58
  - lib/bullet/active_record60.rb
81
59
  - lib/bullet/active_record61.rb
82
60
  - lib/bullet/active_record70.rb
61
+ - lib/bullet/active_record71.rb
83
62
  - lib/bullet/bullet_xhr.js
84
63
  - lib/bullet/dependency.rb
85
64
  - lib/bullet/detector.rb
@@ -94,6 +73,7 @@ files:
94
73
  - lib/bullet/mongoid5x.rb
95
74
  - lib/bullet/mongoid6x.rb
96
75
  - lib/bullet/mongoid7x.rb
76
+ - lib/bullet/mongoid8x.rb
97
77
  - lib/bullet/notification.rb
98
78
  - lib/bullet/notification/base.rb
99
79
  - lib/bullet/notification/counter_cache.rb
@@ -109,78 +89,12 @@ files:
109
89
  - lib/bullet/stack_trace_filter.rb
110
90
  - lib/bullet/version.rb
111
91
  - lib/generators/bullet/install_generator.rb
112
- - perf/benchmark.rb
113
- - rails/init.rb
114
- - spec/bullet/detector/association_spec.rb
115
- - spec/bullet/detector/base_spec.rb
116
- - spec/bullet/detector/counter_cache_spec.rb
117
- - spec/bullet/detector/n_plus_one_query_spec.rb
118
- - spec/bullet/detector/unused_eager_loading_spec.rb
119
- - spec/bullet/ext/object_spec.rb
120
- - spec/bullet/ext/string_spec.rb
121
- - spec/bullet/notification/base_spec.rb
122
- - spec/bullet/notification/counter_cache_spec.rb
123
- - spec/bullet/notification/n_plus_one_query_spec.rb
124
- - spec/bullet/notification/unused_eager_loading_spec.rb
125
- - spec/bullet/notification_collector_spec.rb
126
- - spec/bullet/rack_spec.rb
127
- - spec/bullet/registry/association_spec.rb
128
- - spec/bullet/registry/base_spec.rb
129
- - spec/bullet/registry/object_spec.rb
130
- - spec/bullet/stack_trace_filter_spec.rb
131
- - spec/bullet_spec.rb
132
- - spec/integration/active_record/association_spec.rb
133
- - spec/integration/counter_cache_spec.rb
134
- - spec/integration/mongoid/association_spec.rb
135
- - spec/models/address.rb
136
- - spec/models/attachment.rb
137
- - spec/models/author.rb
138
- - spec/models/base_user.rb
139
- - spec/models/category.rb
140
- - spec/models/city.rb
141
- - spec/models/client.rb
142
- - spec/models/comment.rb
143
- - spec/models/company.rb
144
- - spec/models/country.rb
145
- - spec/models/deal.rb
146
- - spec/models/document.rb
147
- - spec/models/entry.rb
148
- - spec/models/firm.rb
149
- - spec/models/folder.rb
150
- - spec/models/group.rb
151
- - spec/models/mongoid/address.rb
152
- - spec/models/mongoid/category.rb
153
- - spec/models/mongoid/comment.rb
154
- - spec/models/mongoid/company.rb
155
- - spec/models/mongoid/entry.rb
156
- - spec/models/mongoid/post.rb
157
- - spec/models/mongoid/user.rb
158
- - spec/models/newspaper.rb
159
- - spec/models/page.rb
160
- - spec/models/person.rb
161
- - spec/models/pet.rb
162
- - spec/models/post.rb
163
- - spec/models/relationship.rb
164
- - spec/models/reply.rb
165
- - spec/models/role.rb
166
- - spec/models/student.rb
167
- - spec/models/submission.rb
168
- - spec/models/teacher.rb
169
- - spec/models/user.rb
170
- - spec/models/writer.rb
171
- - spec/spec_helper.rb
172
- - spec/support/bullet_ext.rb
173
- - spec/support/mongo_seed.rb
174
- - spec/support/rack_double.rb
175
- - spec/support/sqlite_seed.rb
176
92
  - tasks/bullet_tasks.rake
177
- - test.sh
178
- - update.sh
179
93
  homepage: https://github.com/flyerhzm/bullet
180
94
  licenses:
181
95
  - MIT
182
96
  metadata:
183
- changelog_uri: https://github.com/flyerhzm/bullet/blob/master/CHANGELOG.md
97
+ changelog_uri: https://github.com/flyerhzm/bullet/blob/main/CHANGELOG.md
184
98
  source_code_uri: https://github.com/flyerhzm/bullet
185
99
  post_install_message:
186
100
  rdoc_options: []
@@ -197,70 +111,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
197
111
  - !ruby/object:Gem::Version
198
112
  version: 1.3.6
199
113
  requirements: []
200
- rubygems_version: 3.4.1
114
+ rubygems_version: 3.4.20
201
115
  signing_key:
202
116
  specification_version: 4
203
117
  summary: help to kill N+1 queries and unused eager loading.
204
- test_files:
205
- - spec/bullet/detector/association_spec.rb
206
- - spec/bullet/detector/base_spec.rb
207
- - spec/bullet/detector/counter_cache_spec.rb
208
- - spec/bullet/detector/n_plus_one_query_spec.rb
209
- - spec/bullet/detector/unused_eager_loading_spec.rb
210
- - spec/bullet/ext/object_spec.rb
211
- - spec/bullet/ext/string_spec.rb
212
- - spec/bullet/notification/base_spec.rb
213
- - spec/bullet/notification/counter_cache_spec.rb
214
- - spec/bullet/notification/n_plus_one_query_spec.rb
215
- - spec/bullet/notification/unused_eager_loading_spec.rb
216
- - spec/bullet/notification_collector_spec.rb
217
- - spec/bullet/rack_spec.rb
218
- - spec/bullet/registry/association_spec.rb
219
- - spec/bullet/registry/base_spec.rb
220
- - spec/bullet/registry/object_spec.rb
221
- - spec/bullet/stack_trace_filter_spec.rb
222
- - spec/bullet_spec.rb
223
- - spec/integration/active_record/association_spec.rb
224
- - spec/integration/counter_cache_spec.rb
225
- - spec/integration/mongoid/association_spec.rb
226
- - spec/models/address.rb
227
- - spec/models/attachment.rb
228
- - spec/models/author.rb
229
- - spec/models/base_user.rb
230
- - spec/models/category.rb
231
- - spec/models/city.rb
232
- - spec/models/client.rb
233
- - spec/models/comment.rb
234
- - spec/models/company.rb
235
- - spec/models/country.rb
236
- - spec/models/deal.rb
237
- - spec/models/document.rb
238
- - spec/models/entry.rb
239
- - spec/models/firm.rb
240
- - spec/models/folder.rb
241
- - spec/models/group.rb
242
- - spec/models/mongoid/address.rb
243
- - spec/models/mongoid/category.rb
244
- - spec/models/mongoid/comment.rb
245
- - spec/models/mongoid/company.rb
246
- - spec/models/mongoid/entry.rb
247
- - spec/models/mongoid/post.rb
248
- - spec/models/mongoid/user.rb
249
- - spec/models/newspaper.rb
250
- - spec/models/page.rb
251
- - spec/models/person.rb
252
- - spec/models/pet.rb
253
- - spec/models/post.rb
254
- - spec/models/relationship.rb
255
- - spec/models/reply.rb
256
- - spec/models/role.rb
257
- - spec/models/student.rb
258
- - spec/models/submission.rb
259
- - spec/models/teacher.rb
260
- - spec/models/user.rb
261
- - spec/models/writer.rb
262
- - spec/spec_helper.rb
263
- - spec/support/bullet_ext.rb
264
- - spec/support/mongo_seed.rb
265
- - spec/support/rack_double.rb
266
- - spec/support/sqlite_seed.rb
118
+ test_files: []
@@ -1,82 +0,0 @@
1
- # This workflow uses actions that are not certified by GitHub.
2
- # They are provided by a third-party and are governed by
3
- # separate terms of service, privacy policy, and support
4
- # documentation.
5
- # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
- # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
-
8
- name: CI
9
-
10
- on:
11
- push:
12
- branches: [ main ]
13
- pull_request:
14
- branches: [ main ]
15
-
16
- jobs:
17
- test_rails_4:
18
- runs-on: ubuntu-latest
19
- strategy:
20
- matrix:
21
- gemfile: ['Gemfile.rails-4.0', 'Gemfile.rails-4.1', 'Gemfile.rails-4.2']
22
- env: # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps
23
- BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.gemfile }}
24
- steps:
25
- - uses: actions/checkout@v2
26
- - name: Set up Ruby
27
- uses: ruby/setup-ruby@v1
28
- with:
29
- ruby-version: 2.3
30
- bundler: 1
31
- bundler-cache: true
32
- - name: Run tests
33
- run: bundle exec rake
34
- test_rails_5:
35
- runs-on: ubuntu-latest
36
- strategy:
37
- matrix:
38
- gemfile: ['Gemfile.rails-5.0', 'Gemfile.rails-5.1', 'Gemfile.rails-5.2']
39
- env: # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps
40
- BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.gemfile }}
41
- steps:
42
- - uses: actions/checkout@v2
43
- - name: Set up Ruby
44
- uses: ruby/setup-ruby@v1
45
- with:
46
- ruby-version: 2.5
47
- bundler: 1
48
- bundler-cache: true
49
- - name: Run tests
50
- run: bundle exec rake
51
- test_rails_6:
52
- runs-on: ubuntu-latest
53
- strategy:
54
- matrix:
55
- gemfile: ['Gemfile.rails-6.0', 'Gemfile.rails-6.1']
56
- env: # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps
57
- BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.gemfile }}
58
- steps:
59
- - uses: actions/checkout@v2
60
- - name: Set up Ruby
61
- uses: ruby/setup-ruby@v1
62
- with:
63
- ruby-version: 2.7
64
- bundler-cache: true
65
- - name: Run tests
66
- run: bundle exec rake
67
- test_rails_7:
68
- runs-on: ubuntu-latest
69
- strategy:
70
- matrix:
71
- gemfile: ['Gemfile.rails-7.0']
72
- env: # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps
73
- BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.gemfile }}
74
- steps:
75
- - uses: actions/checkout@v2
76
- - name: Set up Ruby
77
- uses: ruby/setup-ruby@v1
78
- with:
79
- ruby-version: 3.1
80
- bundler-cache: true
81
- - name: Run tests
82
- run: bundle exec rake
data/.gitignore DELETED
@@ -1,15 +0,0 @@
1
- log/**
2
- pkg/**
3
- .DS_Store
4
- lib/.DS_Store
5
- .*.swp
6
- coverage.data
7
- tags
8
- .bundle
9
- *.gem
10
- benchmark_profile*
11
- /nbproject/private/
12
- coverage/
13
- .coveralls.yml
14
- Gemfile*.lock
15
- .idea/
data/.rspec DELETED
@@ -1,2 +0,0 @@
1
- --colour
2
- --format progress
data/Gemfile DELETED
@@ -1,24 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- git_source(:github) do |repo_name|
4
- repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?('/')
5
- "https://github.com/#{repo_name}.git"
6
- end
7
-
8
- gemspec
9
-
10
- gem 'rails', github: 'rails'
11
- gem 'sqlite3', platforms: [:ruby]
12
- gem 'activerecord-jdbcsqlite3-adapter', platforms: [:jruby]
13
- gem 'activerecord-import'
14
-
15
- gem 'rspec'
16
- gem 'guard'
17
- gem 'guard-rspec'
18
-
19
- gem 'coveralls', require: false
20
-
21
- platforms :rbx do
22
- gem 'rubysl', '~> 2.0'
23
- gem 'rubinius-developer_tools'
24
- end
data/Gemfile.mongoid DELETED
@@ -1,12 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
4
-
5
- gem 'rails'
6
- gem 'sqlite3', platforms: [:ruby]
7
- gem 'activerecord-jdbcsqlite3-adapter', platforms: [:jruby]
8
- gem 'mongoid', github: 'mongoid/mongoid'
9
-
10
- gem "rspec"
11
-
12
- gem 'coveralls', require: false
data/Gemfile.mongoid-4.0 DELETED
@@ -1,15 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
4
-
5
- gem 'rails', '~> 4.0.0'
6
- gem 'sqlite3', platforms: [:ruby]
7
- gem 'activerecord-jdbcsqlite3-adapter', platforms: [:jruby]
8
- gem 'mongoid', '~> 4.0.0'
9
-
10
- gem "rspec"
11
-
12
- platforms :rbx do
13
- gem 'rubysl', '~> 2.0'
14
- gem 'rubinius-developer_tools'
15
- end
data/Gemfile.mongoid-5.0 DELETED
@@ -1,15 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
4
-
5
- gem 'rails', '~> 4.0.0'
6
- gem 'sqlite3', platforms: [:ruby]
7
- gem 'activerecord-jdbcsqlite3-adapter', platforms: [:jruby]
8
- gem 'mongoid', '~> 5.1.0'
9
-
10
- gem "rspec"
11
-
12
- platforms :rbx do
13
- gem 'rubysl', '~> 2.0'
14
- gem 'rubinius-developer_tools'
15
- end
data/Gemfile.mongoid-6.0 DELETED
@@ -1,15 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
4
-
5
- gem 'rails', '~> 5.0.0'
6
- gem 'sqlite3', platforms: [:ruby]
7
- gem 'activerecord-jdbcsqlite3-adapter', platforms: [:jruby]
8
- gem 'mongoid', '~> 6.0.0'
9
-
10
- gem "rspec"
11
-
12
- platforms :rbx do
13
- gem 'rubysl', '~> 2.0'
14
- gem 'rubinius-developer_tools'
15
- end
data/Gemfile.mongoid-7.0 DELETED
@@ -1,15 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
4
-
5
- gem 'rails', '~> 5.0'
6
- gem 'sqlite3', platforms: [:ruby]
7
- gem 'activerecord-jdbcsqlite3-adapter', platforms: [:jruby]
8
- gem 'mongoid', '~> 7.0.0'
9
-
10
- gem "rspec"
11
-
12
- platforms :rbx do
13
- gem 'rubysl', '~> 2.0'
14
- gem 'rubinius-developer_tools'
15
- end
data/Gemfile.rails-4.0 DELETED
@@ -1,16 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
4
-
5
- gem 'rails', '~> 4.0.0'
6
- gem 'sqlite3', '~> 1.3.6', platforms: [:ruby]
7
- gem 'activerecord-jdbcsqlite3-adapter', platforms: [:jruby]
8
- gem 'activerecord-import'
9
- gem 'tins', '~> 1.6.0', platforms: [:ruby_19]
10
-
11
- gem "rspec"
12
-
13
- platforms :rbx do
14
- gem 'rubysl', '~> 2.0'
15
- gem 'rubinius-developer_tools'
16
- end
data/Gemfile.rails-4.1 DELETED
@@ -1,16 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
4
-
5
- gem 'rails', '~> 4.1.0'
6
- gem 'sqlite3', '~> 1.3.6'
7
- gem 'activerecord-jdbcsqlite3-adapter', platforms: [:jruby]
8
- gem 'activerecord-import'
9
- gem 'tins', '~> 1.6.0', platforms: [:ruby_19]
10
-
11
- gem "rspec"
12
-
13
- platforms :rbx do
14
- gem 'rubysl', '~> 2.0'
15
- gem 'rubinius-developer_tools'
16
- end
data/Gemfile.rails-4.2 DELETED
@@ -1,16 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
4
-
5
- gem 'rails', '~> 4.2.0'
6
- gem 'sqlite3', '~> 1.3.6'
7
- gem 'activerecord-jdbcsqlite3-adapter', platforms: [:jruby]
8
- gem 'activerecord-import'
9
- gem 'tins', '~> 1.6.0', platforms: [:ruby_19]
10
-
11
- gem "rspec"
12
-
13
- platforms :rbx do
14
- gem 'rubysl', '~> 2.0'
15
- gem 'rubinius-developer_tools'
16
- end
data/Gemfile.rails-5.0 DELETED
@@ -1,15 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
4
-
5
- gem 'rails', '~> 5.0.0'
6
- gem 'sqlite3', '~> 1.3.6'
7
- gem 'activerecord-jdbcsqlite3-adapter', platforms: [:jruby]
8
- gem 'activerecord-import'
9
-
10
- gem "rspec"
11
-
12
- platforms :rbx do
13
- gem 'rubysl', '~> 2.0'
14
- gem 'rubinius-developer_tools'
15
- end
data/Gemfile.rails-5.1 DELETED
@@ -1,15 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
4
-
5
- gem 'rails', '~> 5.1.0'
6
- gem 'sqlite3', '~> 1.3.6'
7
- gem 'activerecord-jdbcsqlite3-adapter', platforms: [:jruby]
8
- gem 'activerecord-import'
9
-
10
- gem "rspec"
11
-
12
- platforms :rbx do
13
- gem 'rubysl', '~> 2.0'
14
- gem 'rubinius-developer_tools'
15
- end
data/Gemfile.rails-5.2 DELETED
@@ -1,15 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
4
-
5
- gem 'rails', '~> 5.2.0'
6
- gem 'sqlite3', '~> 1.3.6'
7
- gem 'activerecord-jdbcsqlite3-adapter', platforms: [:jruby]
8
- gem 'activerecord-import'
9
-
10
- gem "rspec"
11
-
12
- platforms :rbx do
13
- gem 'rubysl', '~> 2.0'
14
- gem 'rubinius-developer_tools'
15
- end
data/Gemfile.rails-6.0 DELETED
@@ -1,15 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
4
-
5
- gem 'rails', '~> 6.0.0'
6
- gem 'sqlite3'
7
- gem 'activerecord-jdbcsqlite3-adapter', platforms: [:jruby]
8
- gem 'activerecord-import'
9
-
10
- gem "rspec"
11
-
12
- platforms :rbx do
13
- gem 'rubysl', '~> 2.0'
14
- gem 'rubinius-developer_tools'
15
- end
data/Gemfile.rails-6.1 DELETED
@@ -1,15 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
4
-
5
- gem 'rails', '~> 6.1.0'
6
- gem 'sqlite3'
7
- gem 'activerecord-jdbcsqlite3-adapter', platforms: [:jruby]
8
- gem 'activerecord-import'
9
-
10
- gem "rspec"
11
-
12
- platforms :rbx do
13
- gem 'rubysl', '~> 2.0'
14
- gem 'rubinius-developer_tools'
15
- end
data/Gemfile.rails-7.0 DELETED
@@ -1,10 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec
4
-
5
- gem 'rails', '~> 7.0.0'
6
- gem 'sqlite3'
7
- gem 'activerecord-jdbcsqlite3-adapter', platforms: [:jruby]
8
- gem 'activerecord-import'
9
-
10
- gem "rspec"
data/Guardfile DELETED
@@ -1,8 +0,0 @@
1
- # A sample Guardfile
2
- # More info at https://github.com/guard/guard#readme
3
-
4
- guard 'rspec', version: 2, all_after_pass: false, all_on_start: false, cli: '--color --format nested --fail-fast' do
5
- watch(%r{^spec/.+_spec\.rb$})
6
- watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
7
- watch('spec/spec_helper.rb') { 'spec' }
8
- end
data/Hacking.md DELETED
@@ -1,75 +0,0 @@
1
- # Bullet Overview for Developers
2
-
3
- This file aims to give developers a quick tour of the bullet internals, making
4
- it (hopefully) easier to extend or enhance the Bullet gem.
5
-
6
- ## General Control Flow aka. 10000 Meter View
7
-
8
- When Rails is initialized, Bullet will extend ActiveRecord (and if you're using
9
- Rails 2.x ActiveController too) with the relevant modules and methods found
10
- in lib/bullet/active_recordX.rb and lib/bullet/action_controller2.rb. If you're
11
- running Rails 3, Bullet will integrate itself as a middleware into the Rack
12
- stack, so ActionController does not need to be extended.
13
-
14
- The ActiveRecord extensions will call methods in a given detector class, when
15
- certain methods are called.
16
-
17
- Detector classes contain all the logic to recognize
18
- a noteworthy event. If such an event is detected, an instance of the
19
- corresponding Notification class is created and stored in a Set instance in the
20
- main Bullet module (the 'notification collector').
21
-
22
- Notification instances contain the message that will be displayed, and will
23
- use a Presenter class to display their message to the user.
24
-
25
- So the flow of a request goes like this:
26
-
27
- 1. Bullet.start_request is called, which resets all the detectors and empties
28
- the notification collector
29
- 2. The request is handled by Rails, and the installed ActiveRecord extensions
30
- trigger Detector callbacks
31
- 3. Detectors once called, will determine whether something noteworthy happened.
32
- If yes, then a Notification is created and stored in the notification collector.
33
- 4. Rails finishes handling the request
34
- 5. For each notification in the collector, Bullet will iterate over each
35
- Presenter and will try to generate an inline message that will be appended to
36
- the generated response body.
37
- 6. The response is returned to the client.
38
- 7. Bullet will try to generate an out-of-channel message for each notification.
39
- 8. Bullet calls end_request for each detector.
40
- 9. Goto 1.
41
-
42
- ## Adding Notification Types
43
-
44
- If you want to add more kinds of things that Bullet can detect, a little more
45
- work is needed than if you were just adding a Presenter, but the concepts are
46
- similar.
47
-
48
- * Add the class to the DETECTORS constant in the main Bullet module
49
- * Add (if needed) Rails monkey patches to Bullet.enable
50
- * Add an autoload directive to lib/bullet/detector.rb
51
- * Create a corresponding notification class in the Bullet::Notification namespace
52
- * Add an autoload directive to lib/bullet/notification.rb
53
-
54
- As a rule of thumb, you can assume that each Detector will have its own
55
- Notification class. If you follow the principle of Separation of Concerns I
56
- can't really think of an example where one would deviate from this rule.
57
-
58
- Since the detection of pathological associations is a bit hairy, I'd recommend
59
- having a look at the counter cache detector and associated notification to get
60
- a feel for what is needed to get off the ground.
61
-
62
- ### Detectors
63
-
64
- The only things you'll need to consider when building your Detector class is
65
- that it will need to supply the .start_request, .end_request and .clear class
66
- methods.
67
-
68
- Simple implementations are provided by Bullet::Detector::Base for start_request
69
- and end_request, you will have to supply your own clear method.
70
-
71
- ### Notifications
72
-
73
- For notifications you will want to supply a #title and #body instance method,
74
- and check to see if the #initialize and #full_notice methods in the
75
- Bullet::Notification::Base class fit your needs.