cruft_tracker 0.2.1 → 0.2.4
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.
- checksums.yaml +4 -4
- data/README.md +11 -1
- data/app/services/cruft_tracker/record_arguments.rb +10 -9
- data/app/services/cruft_tracker/record_backtrace.rb +10 -9
- data/app/services/cruft_tracker/record_render_metadata.rb +10 -8
- data/app/services/cruft_tracker/record_view_render.rb +10 -9
- data/app/services/cruft_tracker/track_method.rb +8 -6
- data/app/services/cruft_tracker/track_view.rb +4 -2
- data/lib/cruft_tracker/engine.rb +2 -5
- data/lib/cruft_tracker/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a82b0ad009d2cde41d3b6ed06e4e7446fdbdf4a6859320c31e3088e6ef407f86
|
4
|
+
data.tar.gz: 73bac370ea7ba50131e1229dbe08dcec1ad3bbce250eaeb3cf0aeb143157f4ab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 03fb7812e4214f3a99b722236e1709af842a9633e33497366dc47f106e63b1c7c577614fc105b180ecd172b26e1f74cd5109cf9185338cd4c14d9be8b7754af2
|
7
|
+
data.tar.gz: 4b7f5bd324d2e5b51a03ac50f2c046f9c3480b8f2edcbd4be8b02c551c51086f58d05c36abc35cd0cda93a78b17f6c4a63b4b891ec690054740b0876500b3732
|
data/README.md
CHANGED
@@ -47,6 +47,16 @@ CruftTracker.init do
|
|
47
47
|
end
|
48
48
|
```
|
49
49
|
|
50
|
+
Note: you may need to wrap the `CruftTracker.init` call in `Rails.application.reloader.to_prepare` to prevent deprecation warnings related to autoloading constants during initialization. For example:
|
51
|
+
|
52
|
+
```ruby
|
53
|
+
Rails.application.reloader.to_prepare do
|
54
|
+
CruftTracker.init do
|
55
|
+
# your configuration.... (more on this below)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
```
|
59
|
+
|
50
60
|
### Tracking method invocations
|
51
61
|
|
52
62
|
CruftTracker is pretty simple. Let's say you have a class (or module) like this...
|
@@ -355,7 +365,7 @@ Let's say you have this view and you're just not sure it's being used anymore:
|
|
355
365
|
<!-- app/views/something/some_view.html.erb -->
|
356
366
|
|
357
367
|
<div>
|
358
|
-
|
368
|
+
<%- if @data.present? %>
|
359
369
|
<strong>Woo hoo!</strong>
|
360
370
|
<% end %>
|
361
371
|
</div>
|
@@ -9,9 +9,9 @@ module CruftTracker
|
|
9
9
|
private
|
10
10
|
|
11
11
|
def execute
|
12
|
-
return unless arguments_record.present?
|
13
|
-
|
14
12
|
CruftTracker::LogSuppressor.suppress_logging do
|
13
|
+
return unless arguments_record.present?
|
14
|
+
|
15
15
|
arguments_record.with_lock do
|
16
16
|
arguments_record.reload
|
17
17
|
arguments_record.update(occurrences: arguments_record.occurrences + 1)
|
@@ -24,22 +24,23 @@ module CruftTracker
|
|
24
24
|
def arguments_record
|
25
25
|
@arguments_record ||=
|
26
26
|
begin
|
27
|
-
|
27
|
+
arguments_record = CruftTracker::Argument.find_by(
|
28
|
+
method: method,
|
29
|
+
arguments_hash: arguments_hash
|
30
|
+
)
|
31
|
+
|
32
|
+
if arguments_record.present? || max_records_reached?
|
33
|
+
return arguments_record
|
34
|
+
end
|
28
35
|
|
29
36
|
CruftTracker::Argument.create(
|
30
37
|
method: method,
|
31
38
|
arguments_hash: arguments_hash,
|
32
39
|
arguments: transformed_arguments
|
33
40
|
)
|
34
|
-
rescue ActiveRecord::RecordNotUnique
|
35
|
-
find_existing_arguments_record
|
36
41
|
end
|
37
42
|
end
|
38
43
|
|
39
|
-
def find_existing_arguments_record
|
40
|
-
CruftTracker::Argument.find_by(arguments_hash: arguments_hash)
|
41
|
-
end
|
42
|
-
|
43
44
|
def arguments_hash
|
44
45
|
Digest::MD5.hexdigest(transformed_arguments.to_json)
|
45
46
|
end
|
@@ -7,9 +7,9 @@ module CruftTracker
|
|
7
7
|
private
|
8
8
|
|
9
9
|
def execute
|
10
|
-
return unless backtrace_record.present?
|
11
|
-
|
12
10
|
CruftTracker::LogSuppressor.suppress_logging do
|
11
|
+
return unless backtrace_record.present?
|
12
|
+
|
13
13
|
backtrace_record.with_lock do
|
14
14
|
backtrace_record.reload
|
15
15
|
backtrace_record.update(occurrences: backtrace_record.occurrences + 1)
|
@@ -22,22 +22,23 @@ module CruftTracker
|
|
22
22
|
def backtrace_record
|
23
23
|
@backtrace_record ||=
|
24
24
|
begin
|
25
|
-
|
25
|
+
backtrace_record = CruftTracker::Backtrace.find_by(
|
26
|
+
traceable: method,
|
27
|
+
trace_hash: backtrace_hash
|
28
|
+
)
|
29
|
+
|
30
|
+
if backtrace_record.present? || max_records_reached?
|
31
|
+
return backtrace_record
|
32
|
+
end
|
26
33
|
|
27
34
|
CruftTracker::Backtrace.create(
|
28
35
|
traceable: method,
|
29
36
|
trace_hash: backtrace_hash,
|
30
37
|
trace: filtered_backtrace
|
31
38
|
)
|
32
|
-
rescue ActiveRecord::RecordNotUnique
|
33
|
-
find_existing_backtrace_record
|
34
39
|
end
|
35
40
|
end
|
36
41
|
|
37
|
-
def find_existing_backtrace_record
|
38
|
-
CruftTracker::Backtrace.find_by(trace_hash: backtrace_hash)
|
39
|
-
end
|
40
|
-
|
41
42
|
def backtrace_hash
|
42
43
|
Digest::MD5.hexdigest(filtered_backtrace.to_json)
|
43
44
|
end
|
@@ -10,9 +10,10 @@ module CruftTracker
|
|
10
10
|
|
11
11
|
def execute
|
12
12
|
return unless metadata.present?
|
13
|
-
return unless render_metadata_record.present?
|
14
13
|
|
15
14
|
CruftTracker::LogSuppressor.suppress_logging do
|
15
|
+
return unless render_metadata_record.present?
|
16
|
+
|
16
17
|
render_metadata_record.with_lock do
|
17
18
|
render_metadata_record.reload
|
18
19
|
render_metadata_record.update(
|
@@ -25,22 +26,23 @@ module CruftTracker
|
|
25
26
|
def render_metadata_record
|
26
27
|
@render_metadata_record ||=
|
27
28
|
begin
|
28
|
-
|
29
|
+
render_metadata_record = CruftTracker::RenderMetadata.find_by(
|
30
|
+
view_render: view_render,
|
31
|
+
metadata_hash: metadata_hash
|
32
|
+
)
|
33
|
+
|
34
|
+
if render_metadata_record.present? || max_records_reached?
|
35
|
+
return render_metadata_record
|
36
|
+
end
|
29
37
|
|
30
38
|
CruftTracker::RenderMetadata.create(
|
31
39
|
view_render: view_render,
|
32
40
|
metadata_hash: metadata_hash,
|
33
41
|
metadata: metadata
|
34
42
|
)
|
35
|
-
rescue ActiveRecord::RecordNotUnique
|
36
|
-
find_existing_render_metadata_record
|
37
43
|
end
|
38
44
|
end
|
39
45
|
|
40
|
-
def find_existing_render_metadata_record
|
41
|
-
CruftTracker::RenderMetadata.find_by(metadata_hash: metadata_hash)
|
42
|
-
end
|
43
|
-
|
44
46
|
def metadata_hash
|
45
47
|
Digest::MD5.hexdigest([view_render.render_hash, metadata].to_json)
|
46
48
|
end
|
@@ -20,9 +20,9 @@ module CruftTracker
|
|
20
20
|
private
|
21
21
|
|
22
22
|
def execute
|
23
|
-
return unless view_render_record.present?
|
24
|
-
|
25
23
|
CruftTracker::LogSuppressor.suppress_logging do
|
24
|
+
return unless view_render_record.present?
|
25
|
+
|
26
26
|
view.with_lock do
|
27
27
|
view.reload
|
28
28
|
view.update(renders: view.renders + 1)
|
@@ -52,7 +52,14 @@ module CruftTracker
|
|
52
52
|
def view_render_record
|
53
53
|
@view_render_record ||=
|
54
54
|
begin
|
55
|
-
|
55
|
+
view_render_record = CruftTracker::ViewRender.find_by(
|
56
|
+
view: view,
|
57
|
+
render_hash: render_hash
|
58
|
+
)
|
59
|
+
|
60
|
+
if view_render_record.present? || max_records_reached?
|
61
|
+
return view_render_record
|
62
|
+
end
|
56
63
|
|
57
64
|
CruftTracker::ViewRender.create(
|
58
65
|
view: view,
|
@@ -63,15 +70,9 @@ module CruftTracker
|
|
63
70
|
http_method: http_method,
|
64
71
|
render_stack: render_stack
|
65
72
|
)
|
66
|
-
rescue ActiveRecord::RecordNotUnique
|
67
|
-
find_existing_view_render_record
|
68
73
|
end
|
69
74
|
end
|
70
75
|
|
71
|
-
def find_existing_view_render_record
|
72
|
-
CruftTracker::ViewRender.find_by(render_hash: render_hash)
|
73
|
-
end
|
74
|
-
|
75
76
|
def render_hash
|
76
77
|
Digest::MD5.hexdigest(
|
77
78
|
{
|
@@ -77,17 +77,19 @@ module CruftTracker
|
|
77
77
|
end
|
78
78
|
|
79
79
|
def create_or_find_method_record
|
80
|
-
CruftTracker::Method.
|
80
|
+
method_record = CruftTracker::Method.find_by(
|
81
81
|
owner: owner.name,
|
82
82
|
name: name,
|
83
|
-
method_type: method_type
|
84
|
-
comment: comment
|
83
|
+
method_type: method_type
|
85
84
|
)
|
86
|
-
|
87
|
-
|
85
|
+
|
86
|
+
return method_record if method_record.present?
|
87
|
+
|
88
|
+
CruftTracker::Method.create(
|
88
89
|
owner: owner.name,
|
89
90
|
name: name,
|
90
|
-
method_type: method_type
|
91
|
+
method_type: method_type,
|
92
|
+
comment: comment
|
91
93
|
)
|
92
94
|
end
|
93
95
|
|
@@ -52,9 +52,11 @@ module CruftTracker
|
|
52
52
|
end
|
53
53
|
|
54
54
|
def create_or_find_view_record
|
55
|
+
view_record = CruftTracker::View.find_by(view: view)
|
56
|
+
|
57
|
+
return view_record if view_record.present?
|
58
|
+
|
55
59
|
CruftTracker::View.create(view: view, comment: comment)
|
56
|
-
rescue ActiveRecord::RecordNotUnique
|
57
|
-
CruftTracker::View.find_by(view: view)
|
58
60
|
end
|
59
61
|
end
|
60
62
|
end
|
data/lib/cruft_tracker/engine.rb
CHANGED
@@ -3,16 +3,13 @@ module CruftTracker
|
|
3
3
|
isolate_namespace CruftTracker
|
4
4
|
|
5
5
|
config.after_initialize do
|
6
|
+
ActionController::Base.helper CruftTracker::ApplicationHelper
|
6
7
|
CruftTracker::CleanupUntrackedMethods.run!
|
7
8
|
CruftTracker::CleanupUntrackedViews.run!
|
8
9
|
rescue StandardError
|
9
10
|
# Swallow all errors to prevent initialization failures.
|
10
11
|
end
|
11
12
|
|
12
|
-
|
13
|
-
ActiveSupport.on_load :action_controller do
|
14
|
-
helper CruftTracker::ApplicationHelper
|
15
|
-
end
|
16
|
-
end
|
13
|
+
|
17
14
|
end
|
18
15
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cruft_tracker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adwerx Inc.
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2022-
|
12
|
+
date: 2022-08-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: active_interaction
|