cruft_tracker 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +460 -0
  4. data/Rakefile +8 -0
  5. data/app/assets/config/cruft_tracker_manifest.js +1 -0
  6. data/app/assets/stylesheets/cruft_tracker/application.css +15 -0
  7. data/app/controllers/cruft_tracker/application_controller.rb +4 -0
  8. data/app/controllers/cruft_tracker/methods_controller.rb +10 -0
  9. data/app/helpers/cruft_tracker/application_helper.rb +4 -0
  10. data/app/models/cruft_tracker/application_record.rb +5 -0
  11. data/app/models/cruft_tracker/argument.rb +7 -0
  12. data/app/models/cruft_tracker/backtrace.rb +7 -0
  13. data/app/models/cruft_tracker/method.rb +43 -0
  14. data/app/services/cruft_tracker/application_service.rb +6 -0
  15. data/app/services/cruft_tracker/cleanup_untracked_methods.rb +20 -0
  16. data/app/services/cruft_tracker/record_arguments.rb +41 -0
  17. data/app/services/cruft_tracker/record_backtrace.rb +53 -0
  18. data/app/services/cruft_tracker/record_invocation.rb +15 -0
  19. data/app/services/cruft_tracker/track_all_methods.rb +47 -0
  20. data/app/services/cruft_tracker/track_method.rb +139 -0
  21. data/app/views/cruft_tracker/methods/index.html.erb +1 -0
  22. data/app/views/layouts/cruft_tracker/application.html.erb +15 -0
  23. data/config/routes.rb +3 -0
  24. data/db/migrate/20220414134857_create_cruft_tracker_methods.rb +17 -0
  25. data/db/migrate/20220418133030_create_cruft_tracker_backtraces.rb +20 -0
  26. data/db/migrate/20220419171326_add_comment_to_cruft_tracker_methods.rb +9 -0
  27. data/db/migrate/20220419174055_create_cruft_tracker_arguments.rb +15 -0
  28. data/lib/cruft_tracker/engine.rb +17 -0
  29. data/lib/cruft_tracker/registry.rb +25 -0
  30. data/lib/cruft_tracker/version.rb +3 -0
  31. data/lib/cruft_tracker.rb +31 -0
  32. data/lib/tasks/cruft_tracker_tasks.rake +4 -0
  33. metadata +309 -0
metadata ADDED
@@ -0,0 +1,309 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cruft_tracker
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Adwerx Inc.
8
+ - Doug Hughes
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2022-04-22 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: active_interaction
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '4.1'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '4.1'
28
+ - !ruby/object:Gem::Dependency
29
+ name: rails
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '5.2'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '5.2'
42
+ - !ruby/object:Gem::Dependency
43
+ name: appraisal
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: 2.4.1
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: 2.4.1
56
+ - !ruby/object:Gem::Dependency
57
+ name: bundler
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '2.1'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '2.1'
70
+ - !ruby/object:Gem::Dependency
71
+ name: database_cleaner
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: 2.0.1
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: 2.0.1
84
+ - !ruby/object:Gem::Dependency
85
+ name: generator_spec
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: 0.9.4
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: 0.9.4
98
+ - !ruby/object:Gem::Dependency
99
+ name: mysql2
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - "~>"
103
+ - !ruby/object:Gem::Version
104
+ version: 0.5.3
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - "~>"
110
+ - !ruby/object:Gem::Version
111
+ version: 0.5.3
112
+ - !ruby/object:Gem::Dependency
113
+ name: pry-byebug
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - "~>"
117
+ - !ruby/object:Gem::Version
118
+ version: '3.9'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: '3.9'
126
+ - !ruby/object:Gem::Dependency
127
+ name: rails
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '5.2'
133
+ type: :development
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '5.2'
140
+ - !ruby/object:Gem::Dependency
141
+ name: rake
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - "~>"
145
+ - !ruby/object:Gem::Version
146
+ version: '10.0'
147
+ type: :development
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - "~>"
152
+ - !ruby/object:Gem::Version
153
+ version: '10.0'
154
+ - !ruby/object:Gem::Dependency
155
+ name: rspec
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - "~>"
159
+ - !ruby/object:Gem::Version
160
+ version: '3.0'
161
+ type: :development
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - "~>"
166
+ - !ruby/object:Gem::Version
167
+ version: '3.0'
168
+ - !ruby/object:Gem::Dependency
169
+ name: rspec-rails
170
+ requirement: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - "~>"
173
+ - !ruby/object:Gem::Version
174
+ version: 5.0.2
175
+ type: :development
176
+ prerelease: false
177
+ version_requirements: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - "~>"
180
+ - !ruby/object:Gem::Version
181
+ version: 5.0.2
182
+ - !ruby/object:Gem::Dependency
183
+ name: rubocop
184
+ requirement: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - "~>"
187
+ - !ruby/object:Gem::Version
188
+ version: 1.22.2
189
+ type: :development
190
+ prerelease: false
191
+ version_requirements: !ruby/object:Gem::Requirement
192
+ requirements:
193
+ - - "~>"
194
+ - !ruby/object:Gem::Version
195
+ version: 1.22.2
196
+ - !ruby/object:Gem::Dependency
197
+ name: rubocop-rails
198
+ requirement: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - "~>"
201
+ - !ruby/object:Gem::Version
202
+ version: 2.12.4
203
+ type: :development
204
+ prerelease: false
205
+ version_requirements: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - "~>"
208
+ - !ruby/object:Gem::Version
209
+ version: 2.12.4
210
+ - !ruby/object:Gem::Dependency
211
+ name: rubocop-rake
212
+ requirement: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - "~>"
215
+ - !ruby/object:Gem::Version
216
+ version: 0.6.0
217
+ type: :development
218
+ prerelease: false
219
+ version_requirements: !ruby/object:Gem::Requirement
220
+ requirements:
221
+ - - "~>"
222
+ - !ruby/object:Gem::Version
223
+ version: 0.6.0
224
+ - !ruby/object:Gem::Dependency
225
+ name: rubocop-rspec
226
+ requirement: !ruby/object:Gem::Requirement
227
+ requirements:
228
+ - - "~>"
229
+ - !ruby/object:Gem::Version
230
+ version: 2.5.0
231
+ type: :development
232
+ prerelease: false
233
+ version_requirements: !ruby/object:Gem::Requirement
234
+ requirements:
235
+ - - "~>"
236
+ - !ruby/object:Gem::Version
237
+ version: 2.5.0
238
+ description: |
239
+ Have you ever asked yourself, "Is this method even being used?!" Or, "What the heck is this method receiving?" Does your application use Rails? If the answers these questions are yes, this gem may be of use to you!
240
+
241
+ Large applications can accrue cruft; old methods that might once have been important, but are now unused or code that is difficult to understand, but dangerous to refactor. Unfortunately, software is _complex_ and sometimes it's unclear what's really going on. This adds maintenance burdens, headaches, and uncertainty.
242
+
243
+ This gem aims to give you a couple tools to make it easier to know what (and how) your code is being used (or not).
244
+
245
+ CruftTracker supports Rails versions 5.2 to 6.1 at this time. As of now the gem only supports MySQL, but contributions for Postgres other DBMS would be welcome.
246
+ email:
247
+ - dev@adwerx.com
248
+ - dhughes@adwerx.com
249
+ executables: []
250
+ extensions: []
251
+ extra_rdoc_files: []
252
+ files:
253
+ - MIT-LICENSE
254
+ - README.md
255
+ - Rakefile
256
+ - app/assets/config/cruft_tracker_manifest.js
257
+ - app/assets/stylesheets/cruft_tracker/application.css
258
+ - app/controllers/cruft_tracker/application_controller.rb
259
+ - app/controllers/cruft_tracker/methods_controller.rb
260
+ - app/helpers/cruft_tracker/application_helper.rb
261
+ - app/models/cruft_tracker/application_record.rb
262
+ - app/models/cruft_tracker/argument.rb
263
+ - app/models/cruft_tracker/backtrace.rb
264
+ - app/models/cruft_tracker/method.rb
265
+ - app/services/cruft_tracker/application_service.rb
266
+ - app/services/cruft_tracker/cleanup_untracked_methods.rb
267
+ - app/services/cruft_tracker/record_arguments.rb
268
+ - app/services/cruft_tracker/record_backtrace.rb
269
+ - app/services/cruft_tracker/record_invocation.rb
270
+ - app/services/cruft_tracker/track_all_methods.rb
271
+ - app/services/cruft_tracker/track_method.rb
272
+ - app/views/cruft_tracker/methods/index.html.erb
273
+ - app/views/layouts/cruft_tracker/application.html.erb
274
+ - config/routes.rb
275
+ - db/migrate/20220414134857_create_cruft_tracker_methods.rb
276
+ - db/migrate/20220418133030_create_cruft_tracker_backtraces.rb
277
+ - db/migrate/20220419171326_add_comment_to_cruft_tracker_methods.rb
278
+ - db/migrate/20220419174055_create_cruft_tracker_arguments.rb
279
+ - lib/cruft_tracker.rb
280
+ - lib/cruft_tracker/engine.rb
281
+ - lib/cruft_tracker/registry.rb
282
+ - lib/cruft_tracker/version.rb
283
+ - lib/tasks/cruft_tracker_tasks.rake
284
+ homepage: https://github.com/AdWerx/cruft-tracker
285
+ licenses:
286
+ - MIT
287
+ metadata:
288
+ homepage_uri: https://github.com/AdWerx/cruft-tracker
289
+ source_code_uri: https://github.com/AdWerx/cruft-tracker
290
+ post_install_message:
291
+ rdoc_options: []
292
+ require_paths:
293
+ - lib
294
+ required_ruby_version: !ruby/object:Gem::Requirement
295
+ requirements:
296
+ - - ">="
297
+ - !ruby/object:Gem::Version
298
+ version: '0'
299
+ required_rubygems_version: !ruby/object:Gem::Requirement
300
+ requirements:
301
+ - - ">="
302
+ - !ruby/object:Gem::Version
303
+ version: '0'
304
+ requirements: []
305
+ rubygems_version: 3.0.3.1
306
+ signing_key:
307
+ specification_version: 4
308
+ summary: Provides a system to track Ruby method usage somewhat unobtrusively.
309
+ test_files: []