deforest 1.0.2 → 1.1.1

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 (51) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/deforest/files_controller.rb +0 -37
  3. data/app/views/deforest/files/_percentile_table.html.erb +2 -8
  4. data/app/views/deforest/files/dashboard.html.erb +23 -24
  5. data/app/views/layouts/deforest/application.html.erb +0 -2
  6. data/lib/deforest/version.rb +1 -1
  7. data/lib/deforest.rb +66 -96
  8. data/lib/generators/deforest/deforest_generator.rb +5 -6
  9. data/lib/generators/deforest/templates/classic_enabled_initializer.rb +0 -2
  10. data/lib/generators/deforest/templates/zeitwerk_enabled_initializer.rb +0 -2
  11. data/test/deforest_test.rb +6 -6
  12. data/test/dummy/db/test.sqlite3 +0 -0
  13. data/test/dummy/deforest_db_sync.txt +1 -0
  14. data/test/dummy/log/test.log +2562 -18355
  15. data/test/models/post_test.rb +29 -3
  16. metadata +5 -66
  17. data/app/assets/javascripts/deforest/bootstrap.js +0 -4356
  18. data/app/assets/javascripts/deforest/bootstrap.js.map +0 -1
  19. data/app/assets/stylesheets/deforest/bootstrap-grid.css +0 -3872
  20. data/app/assets/stylesheets/deforest/bootstrap.css +0 -10332
  21. data/app/assets/stylesheets/deforest/bootstrap.css.map +0 -1
  22. data/app/views/deforest/files/index.html.erb +0 -16
  23. data/app/views/deforest/files/show.html.erb +0 -39
  24. data/test/dummy/db/development.sqlite3 +0 -0
  25. data/test/dummy/log/development.log +0 -248
  26. data/test/dummy/tmp/cache/assets/sprockets/v3.0/-T/-T8OIATNI3evoKq5bZdOBNbU0tZeQYxDHGmMOQnF2MM.cache +0 -1
  27. data/test/dummy/tmp/cache/assets/sprockets/v3.0/5L/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache +0 -2
  28. data/test/dummy/tmp/cache/assets/sprockets/v3.0/5U/5U1ZhgjUSyIuw2yEYRCbe2n0xGeyHmYwnDlSdtQ2Dnw.cache +0 -1
  29. data/test/dummy/tmp/cache/assets/sprockets/v3.0/AX/AXrDvl0RN_5S8jW0MwnE13ukiiihtUTsaSvoKDVlam4.cache +0 -0
  30. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Cz/Cz2gWla4RNTXNuZf93le7clQqax63V1EHdQWaHR0s-8.cache +0 -1
  31. data/test/dummy/tmp/cache/assets/sprockets/v3.0/DS/DSvREN-eIb--STC5GdXcwmlJjFTw6ZmUVNmW_Sdh1-s.cache +0 -0
  32. data/test/dummy/tmp/cache/assets/sprockets/v3.0/GH/GH5mD035fZ1hsoErrkyMEorz6bwqi30T9a8f3zBIqtE.cache +0 -1
  33. data/test/dummy/tmp/cache/assets/sprockets/v3.0/NL/NLspqKUPe4g6Q4WEvWHMjSTqkF8YS4m2vcBhHBuhVqc.cache +0 -2
  34. data/test/dummy/tmp/cache/assets/sprockets/v3.0/OI/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache +0 -2
  35. data/test/dummy/tmp/cache/assets/sprockets/v3.0/S3/S36SlXZyuQfqj2KG4e2Dpj_ZdUQbe2VflfsqjgLNSag.cache +0 -1
  36. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Sh/ShNcRHXrLA44HDRhTj2J11rZhqAuc56Kdr5Ea6O31Mk.cache +0 -0
  37. data/test/dummy/tmp/cache/assets/sprockets/v3.0/TL/TLNT1dXfMKTBmLi7RI_AoPSFmUtB9LfMeG6OuTkR1HQ.cache +0 -1
  38. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ba/ba0VOL0KrwkwcfcuKSnYe1tT0ccddXS8z2KVn_cjtnI.cache +0 -1
  39. data/test/dummy/tmp/cache/assets/sprockets/v3.0/eV/eVN4NMxJn9WpXFRvBaX65H7Ni3Ux4agZLg6r04-9Zf0.cache +0 -0
  40. data/test/dummy/tmp/cache/assets/sprockets/v3.0/gK/gKO1oowLJsUvxaYbr5rucOzM9MDl7D4Ppj8l7q3AX0g.cache +0 -1
  41. data/test/dummy/tmp/cache/assets/sprockets/v3.0/h-/h-Bt2tKoZ131FgeX_De5387nfrje85Zsquko2lu_uL4.cache +0 -0
  42. data/test/dummy/tmp/cache/assets/sprockets/v3.0/hR/hRDjpdlCa6CLHs-KV6u1wHhQ842r9m1R5eEpivfiFBE.cache +0 -1
  43. data/test/dummy/tmp/cache/assets/sprockets/v3.0/hZ/hZi1k6tpxxCGYxRe7zY74ItcOI8gZrREOpGuA8JSpGg.cache +0 -2
  44. data/test/dummy/tmp/cache/assets/sprockets/v3.0/jD/jDJ0_EfCHu9gwyqis3I2-EsrfB7dBs8YZzvyqaWoOjU.cache +0 -1
  45. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ly/ly49UX-4__EP86mWF_vobKTgvtAGLxUXqGOAPOzY53g.cache +0 -1
  46. data/test/dummy/tmp/cache/assets/sprockets/v3.0/pE/pEhaat2KBd5SrT7szC_8R1_6hK17FTpvoRFkmCRSD3M.cache +0 -2
  47. data/test/dummy/tmp/cache/assets/sprockets/v3.0/qM/qMiFkN6R1w5uIr6HRgTrSHnbEVddbDAVdz0D1XF7T2I.cache +0 -0
  48. data/test/dummy/tmp/cache/assets/sprockets/v3.0/th/thNa8SIbNZvQMtDF3-dUnEJNEFYxRsND8XYtqA2t328.cache +0 -0
  49. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ui/uiFXrn_ILoEjcXpHWygBCsbEcWFKSiMvofYK6-saGVY.cache +0 -1
  50. data/test/dummy/tmp/cache/assets/sprockets/v3.0/xw/xwxSZPjNVcvVU7DwpeJBJ1ZX6yyIFiCvf0GKrN6bZgc.cache +0 -0
  51. data/test/dummy/tmp/cache/assets/sprockets/v3.0/yp/ypFoyURV_Y0NHlBKznetHE6cVjR-mmRHcGSGQ_hERVg.cache +0 -2
@@ -2,14 +2,14 @@ require 'test_helper'
2
2
 
3
3
  class PostTest < ActiveSupport::TestCase
4
4
  setup do
5
- File.open("deforest_db_sync.txt", "w") { |f| f.write(1.hour.ago.to_i.to_s) }
5
+ File.open("deforest_db_sync.#{Process.pid}.txt", "w") { |f| f.write(1.hour.ago.to_i.to_s) }
6
6
  Deforest.initialize_db_sync_file
7
7
  Deforest.class_variable_set('@@write_logs_to_db_every', 1.minute)
8
8
  end
9
9
 
10
10
  teardown do
11
- File.delete("deforest_db_sync.txt") if File.exist?("deforest_db_sync.txt")
12
- File.delete("deforest.log") if File.exist?("deforest.log")
11
+ File.delete("deforest_db_sync.#{Process.pid}.txt") if File.exist?("deforest_db_sync.#{Process.pid}.txt")
12
+ File.delete("deforest.#{Process.pid}.log") if File.exist?("deforest.#{Process.pid}.log")
13
13
  end
14
14
 
15
15
  test "calling a model class method should create a log entry" do
@@ -32,4 +32,30 @@ class PostTest < ActiveSupport::TestCase
32
32
  app_models.delete(m)
33
33
  end
34
34
  end
35
+
36
+ test "most used method" do
37
+ _, _, method_name, _ = Deforest.most_used_methods(nil, 1)[0]
38
+ assert method_name == "get_email"
39
+ end
40
+
41
+ test "top 2 most used methods" do
42
+ f1, f2 = Deforest.most_used_methods(nil, 2)
43
+ _, _, method_name, _ = f1
44
+ assert method_name == "get_email"
45
+ _, _, method_name, _ = f2
46
+ assert method_name == "get_user_name"
47
+ end
48
+
49
+ test "least used method" do
50
+ _, _, method_name, _ = Deforest.least_used_methods(nil, 1)[0]
51
+ assert method_name == "refresh_cache"
52
+ end
53
+
54
+ test "top 2 least used methods" do
55
+ f1, f2 = Deforest.least_used_methods(nil, 2)
56
+ _, _, method_name, _ = f1
57
+ assert method_name == "refresh_cache"
58
+ _, _, method_name, _ = f2
59
+ assert method_name == "lock_user"
60
+ end
35
61
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deforest
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Akshay Takkar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-09-10 00:00:00.000000000 Z
11
+ date: 2024-09-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -120,13 +120,8 @@ files:
120
120
  - MIT-LICENSE
121
121
  - Rakefile
122
122
  - app/assets/javascripts/deforest/application.js
123
- - app/assets/javascripts/deforest/bootstrap.js
124
- - app/assets/javascripts/deforest/bootstrap.js.map
125
123
  - app/assets/javascripts/deforest/logs.js
126
124
  - app/assets/stylesheets/deforest/application.scss
127
- - app/assets/stylesheets/deforest/bootstrap-grid.css
128
- - app/assets/stylesheets/deforest/bootstrap.css
129
- - app/assets/stylesheets/deforest/bootstrap.css.map
130
125
  - app/assets/stylesheets/deforest/logs.css
131
126
  - app/controllers/deforest/application_controller.rb
132
127
  - app/controllers/deforest/files_controller.rb
@@ -135,8 +130,6 @@ files:
135
130
  - app/models/deforest/log.rb
136
131
  - app/views/deforest/files/_percentile_table.html.erb
137
132
  - app/views/deforest/files/dashboard.html.erb
138
- - app/views/deforest/files/index.html.erb
139
- - app/views/deforest/files/show.html.erb
140
133
  - app/views/layouts/deforest/application.html.erb
141
134
  - config/routes.rb
142
135
  - db/migrate/20230113124304_create_deforest_logs.rb
@@ -187,7 +180,6 @@ files:
187
180
  - test/dummy/config/locales/en.yml
188
181
  - test/dummy/config/routes.rb
189
182
  - test/dummy/config/secrets.yml
190
- - test/dummy/db/development.sqlite3
191
183
  - test/dummy/db/migrate/20230211204438_create_users.rb
192
184
  - test/dummy/db/migrate/20230216154544_create_posts.rb
193
185
  - test/dummy/db/migrate/20230218121433_create_special_posts.rb
@@ -196,7 +188,7 @@ files:
196
188
  - test/dummy/db/schema.rb
197
189
  - test/dummy/db/test.sqlite3
198
190
  - test/dummy/deforest.log
199
- - test/dummy/log/development.log
191
+ - test/dummy/deforest_db_sync.txt
200
192
  - test/dummy/log/test.log
201
193
  - test/dummy/public/404.html
202
194
  - test/dummy/public/422.html
@@ -209,32 +201,6 @@ files:
209
201
  - test/dummy/test/models/special/custom/post_test.rb
210
202
  - test/dummy/test/models/special/post_test.rb
211
203
  - test/dummy/test/test_helper.rb
212
- - test/dummy/tmp/cache/assets/sprockets/v3.0/-T/-T8OIATNI3evoKq5bZdOBNbU0tZeQYxDHGmMOQnF2MM.cache
213
- - test/dummy/tmp/cache/assets/sprockets/v3.0/5L/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache
214
- - test/dummy/tmp/cache/assets/sprockets/v3.0/5U/5U1ZhgjUSyIuw2yEYRCbe2n0xGeyHmYwnDlSdtQ2Dnw.cache
215
- - test/dummy/tmp/cache/assets/sprockets/v3.0/AX/AXrDvl0RN_5S8jW0MwnE13ukiiihtUTsaSvoKDVlam4.cache
216
- - test/dummy/tmp/cache/assets/sprockets/v3.0/Cz/Cz2gWla4RNTXNuZf93le7clQqax63V1EHdQWaHR0s-8.cache
217
- - test/dummy/tmp/cache/assets/sprockets/v3.0/DS/DSvREN-eIb--STC5GdXcwmlJjFTw6ZmUVNmW_Sdh1-s.cache
218
- - test/dummy/tmp/cache/assets/sprockets/v3.0/GH/GH5mD035fZ1hsoErrkyMEorz6bwqi30T9a8f3zBIqtE.cache
219
- - test/dummy/tmp/cache/assets/sprockets/v3.0/NL/NLspqKUPe4g6Q4WEvWHMjSTqkF8YS4m2vcBhHBuhVqc.cache
220
- - test/dummy/tmp/cache/assets/sprockets/v3.0/OI/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache
221
- - test/dummy/tmp/cache/assets/sprockets/v3.0/S3/S36SlXZyuQfqj2KG4e2Dpj_ZdUQbe2VflfsqjgLNSag.cache
222
- - test/dummy/tmp/cache/assets/sprockets/v3.0/Sh/ShNcRHXrLA44HDRhTj2J11rZhqAuc56Kdr5Ea6O31Mk.cache
223
- - test/dummy/tmp/cache/assets/sprockets/v3.0/TL/TLNT1dXfMKTBmLi7RI_AoPSFmUtB9LfMeG6OuTkR1HQ.cache
224
- - test/dummy/tmp/cache/assets/sprockets/v3.0/ba/ba0VOL0KrwkwcfcuKSnYe1tT0ccddXS8z2KVn_cjtnI.cache
225
- - test/dummy/tmp/cache/assets/sprockets/v3.0/eV/eVN4NMxJn9WpXFRvBaX65H7Ni3Ux4agZLg6r04-9Zf0.cache
226
- - test/dummy/tmp/cache/assets/sprockets/v3.0/gK/gKO1oowLJsUvxaYbr5rucOzM9MDl7D4Ppj8l7q3AX0g.cache
227
- - test/dummy/tmp/cache/assets/sprockets/v3.0/h-/h-Bt2tKoZ131FgeX_De5387nfrje85Zsquko2lu_uL4.cache
228
- - test/dummy/tmp/cache/assets/sprockets/v3.0/hR/hRDjpdlCa6CLHs-KV6u1wHhQ842r9m1R5eEpivfiFBE.cache
229
- - test/dummy/tmp/cache/assets/sprockets/v3.0/hZ/hZi1k6tpxxCGYxRe7zY74ItcOI8gZrREOpGuA8JSpGg.cache
230
- - test/dummy/tmp/cache/assets/sprockets/v3.0/jD/jDJ0_EfCHu9gwyqis3I2-EsrfB7dBs8YZzvyqaWoOjU.cache
231
- - test/dummy/tmp/cache/assets/sprockets/v3.0/ly/ly49UX-4__EP86mWF_vobKTgvtAGLxUXqGOAPOzY53g.cache
232
- - test/dummy/tmp/cache/assets/sprockets/v3.0/pE/pEhaat2KBd5SrT7szC_8R1_6hK17FTpvoRFkmCRSD3M.cache
233
- - test/dummy/tmp/cache/assets/sprockets/v3.0/qM/qMiFkN6R1w5uIr6HRgTrSHnbEVddbDAVdz0D1XF7T2I.cache
234
- - test/dummy/tmp/cache/assets/sprockets/v3.0/th/thNa8SIbNZvQMtDF3-dUnEJNEFYxRsND8XYtqA2t328.cache
235
- - test/dummy/tmp/cache/assets/sprockets/v3.0/ui/uiFXrn_ILoEjcXpHWygBCsbEcWFKSiMvofYK6-saGVY.cache
236
- - test/dummy/tmp/cache/assets/sprockets/v3.0/xw/xwxSZPjNVcvVU7DwpeJBJ1ZX6yyIFiCvf0GKrN6bZgc.cache
237
- - test/dummy/tmp/cache/assets/sprockets/v3.0/yp/ypFoyURV_Y0NHlBKznetHE6cVjR-mmRHcGSGQ_hERVg.cache
238
204
  - test/fixtures/deforest/logs.yml
239
205
  - test/fixtures/posts.yml
240
206
  - test/integration/navigation_test.rb
@@ -260,11 +226,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
260
226
  - !ruby/object:Gem::Version
261
227
  version: '0'
262
228
  requirements: []
263
- rubygems_version: 3.0.4
229
+ rubygems_version: 3.0.9
264
230
  signing_key:
265
231
  specification_version: 4
266
232
  summary: Deforest helps you analyze your method call stats
267
233
  test_files:
234
+ - test/dummy/deforest_db_sync.txt
268
235
  - test/dummy/app/models/special/custom/post.rb
269
236
  - test/dummy/app/models/special/post.rb
270
237
  - test/dummy/app/models/comment.rb
@@ -320,35 +287,7 @@ test_files:
320
287
  - test/dummy/db/migrate/20230219174900_create_comments.rb
321
288
  - test/dummy/db/migrate/20230218161957_create_special_custom_posts.rb
322
289
  - test/dummy/db/migrate/20230218121433_create_special_posts.rb
323
- - test/dummy/db/development.sqlite3
324
290
  - test/dummy/log/test.log
325
- - test/dummy/log/development.log
326
- - test/dummy/tmp/cache/assets/sprockets/v3.0/5U/5U1ZhgjUSyIuw2yEYRCbe2n0xGeyHmYwnDlSdtQ2Dnw.cache
327
- - test/dummy/tmp/cache/assets/sprockets/v3.0/yp/ypFoyURV_Y0NHlBKznetHE6cVjR-mmRHcGSGQ_hERVg.cache
328
- - test/dummy/tmp/cache/assets/sprockets/v3.0/ui/uiFXrn_ILoEjcXpHWygBCsbEcWFKSiMvofYK6-saGVY.cache
329
- - test/dummy/tmp/cache/assets/sprockets/v3.0/pE/pEhaat2KBd5SrT7szC_8R1_6hK17FTpvoRFkmCRSD3M.cache
330
- - test/dummy/tmp/cache/assets/sprockets/v3.0/S3/S36SlXZyuQfqj2KG4e2Dpj_ZdUQbe2VflfsqjgLNSag.cache
331
- - test/dummy/tmp/cache/assets/sprockets/v3.0/AX/AXrDvl0RN_5S8jW0MwnE13ukiiihtUTsaSvoKDVlam4.cache
332
- - test/dummy/tmp/cache/assets/sprockets/v3.0/-T/-T8OIATNI3evoKq5bZdOBNbU0tZeQYxDHGmMOQnF2MM.cache
333
- - test/dummy/tmp/cache/assets/sprockets/v3.0/GH/GH5mD035fZ1hsoErrkyMEorz6bwqi30T9a8f3zBIqtE.cache
334
- - test/dummy/tmp/cache/assets/sprockets/v3.0/DS/DSvREN-eIb--STC5GdXcwmlJjFTw6ZmUVNmW_Sdh1-s.cache
335
- - test/dummy/tmp/cache/assets/sprockets/v3.0/eV/eVN4NMxJn9WpXFRvBaX65H7Ni3Ux4agZLg6r04-9Zf0.cache
336
- - test/dummy/tmp/cache/assets/sprockets/v3.0/ly/ly49UX-4__EP86mWF_vobKTgvtAGLxUXqGOAPOzY53g.cache
337
- - test/dummy/tmp/cache/assets/sprockets/v3.0/Cz/Cz2gWla4RNTXNuZf93le7clQqax63V1EHdQWaHR0s-8.cache
338
- - test/dummy/tmp/cache/assets/sprockets/v3.0/TL/TLNT1dXfMKTBmLi7RI_AoPSFmUtB9LfMeG6OuTkR1HQ.cache
339
- - test/dummy/tmp/cache/assets/sprockets/v3.0/Sh/ShNcRHXrLA44HDRhTj2J11rZhqAuc56Kdr5Ea6O31Mk.cache
340
- - test/dummy/tmp/cache/assets/sprockets/v3.0/5L/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache
341
- - test/dummy/tmp/cache/assets/sprockets/v3.0/hZ/hZi1k6tpxxCGYxRe7zY74ItcOI8gZrREOpGuA8JSpGg.cache
342
- - test/dummy/tmp/cache/assets/sprockets/v3.0/ba/ba0VOL0KrwkwcfcuKSnYe1tT0ccddXS8z2KVn_cjtnI.cache
343
- - test/dummy/tmp/cache/assets/sprockets/v3.0/h-/h-Bt2tKoZ131FgeX_De5387nfrje85Zsquko2lu_uL4.cache
344
- - test/dummy/tmp/cache/assets/sprockets/v3.0/gK/gKO1oowLJsUvxaYbr5rucOzM9MDl7D4Ppj8l7q3AX0g.cache
345
- - test/dummy/tmp/cache/assets/sprockets/v3.0/hR/hRDjpdlCa6CLHs-KV6u1wHhQ842r9m1R5eEpivfiFBE.cache
346
- - test/dummy/tmp/cache/assets/sprockets/v3.0/NL/NLspqKUPe4g6Q4WEvWHMjSTqkF8YS4m2vcBhHBuhVqc.cache
347
- - test/dummy/tmp/cache/assets/sprockets/v3.0/jD/jDJ0_EfCHu9gwyqis3I2-EsrfB7dBs8YZzvyqaWoOjU.cache
348
- - test/dummy/tmp/cache/assets/sprockets/v3.0/OI/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache
349
- - test/dummy/tmp/cache/assets/sprockets/v3.0/th/thNa8SIbNZvQMtDF3-dUnEJNEFYxRsND8XYtqA2t328.cache
350
- - test/dummy/tmp/cache/assets/sprockets/v3.0/qM/qMiFkN6R1w5uIr6HRgTrSHnbEVddbDAVdz0D1XF7T2I.cache
351
- - test/dummy/tmp/cache/assets/sprockets/v3.0/xw/xwxSZPjNVcvVU7DwpeJBJ1ZX6yyIFiCvf0GKrN6bZgc.cache
352
291
  - test/dummy/README.rdoc
353
292
  - test/deforest_test.rb
354
293
  - test/integration/navigation_test.rb