bullet 7.0.7 → 7.1.0

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 (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.