columns_trace 0.2.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/README.md +13 -1
- data/lib/columns_trace/rails_integration.rb +9 -7
- data/lib/columns_trace/railtie.rb +1 -1
- data/lib/columns_trace/sidekiq_integration.rb +2 -4
- data/lib/columns_trace/version.rb +1 -1
- data/lib/columns_trace.rb +17 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fa413cc3b3048118458cb0ff88c5728688ebc8e83df79187d3d994a9ccd809b1
|
4
|
+
data.tar.gz: 3020d1d0ff9cb045791ab075af34a9107b22bd36bf42d64f9cea598b2d2e7cb8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f2db07987e9d49cb77f713978846faac270094c6a0e329adce3c9acfa2bd77ce4da9b6e4e8953f69f475455b569f29f813414fec5b200f8fc2aba450117de803
|
7
|
+
data.tar.gz: 90235507f898fe6bd975962325169a56bfe5949d0cc323d4162c9cd371cebf91b42683e8d08e0512a978289d4aff24506c45b64e8ce77540f62f39075bd9e467
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
## master (unreleased)
|
2
2
|
|
3
|
+
## 0.3.1 (2024-09-05)
|
4
|
+
|
5
|
+
- Do not override custom logger in railtie
|
6
|
+
|
7
|
+
## 0.3.0 (2023-11-09)
|
8
|
+
|
9
|
+
- Add ability to trace columns usage in custom code
|
10
|
+
- Trace unused columns in mailers
|
11
|
+
|
3
12
|
## 0.2.0 (2023-10-13)
|
4
13
|
|
5
14
|
- Allow to use custom reporters
|
data/README.md
CHANGED
@@ -25,7 +25,7 @@ $ bundle install
|
|
25
25
|
|
26
26
|
## Usage
|
27
27
|
|
28
|
-
Hit a controller action or run `ActiveJob` (or `Sidekiq`) job, open `log/columns_trace.log`,
|
28
|
+
Hit a controller or email action or run `ActiveJob` (or `Sidekiq`) job, open `log/columns_trace.log`,
|
29
29
|
and see the output:
|
30
30
|
|
31
31
|
```
|
@@ -54,6 +54,18 @@ ImportProjectJob
|
|
54
54
|
↳ app/jobs/import_project_job.rb:24:in `perform'
|
55
55
|
```
|
56
56
|
|
57
|
+
### Tracing custom code
|
58
|
+
|
59
|
+
To get columns usage in the custom code, you can manually wrap it by `ColumnsTrace.report`:
|
60
|
+
|
61
|
+
```ruby
|
62
|
+
task my_rake_task: :environment do
|
63
|
+
ColumnsTrace.report("my_rake_task") do
|
64
|
+
# do stuff
|
65
|
+
end
|
66
|
+
end
|
67
|
+
```
|
68
|
+
|
57
69
|
## Configuration
|
58
70
|
|
59
71
|
You can override the following default options:
|
@@ -14,18 +14,20 @@ module ColumnsTrace
|
|
14
14
|
end
|
15
15
|
|
16
16
|
ActiveSupport.on_load(:action_controller) do
|
17
|
-
|
17
|
+
around_action do |controller, action|
|
18
|
+
ColumnsTrace.report("#{controller.class.name}##{action_name}", &action)
|
19
|
+
end
|
20
|
+
end
|
18
21
|
|
19
|
-
|
20
|
-
|
22
|
+
ActiveSupport.on_load(:action_mailer) do
|
23
|
+
around_action do |mailer, action|
|
24
|
+
ColumnsTrace.report("#{mailer.class.name}##{action_name}", &action)
|
21
25
|
end
|
22
26
|
end
|
23
27
|
|
24
28
|
ActiveSupport.on_load(:active_job) do
|
25
|
-
|
26
|
-
|
27
|
-
after_perform do
|
28
|
-
ColumnsTrace.reporter.report(self.class.name, Registry.created_records)
|
29
|
+
around_perform do |job, perform|
|
30
|
+
ColumnsTrace.report("#{job.class.name}#perform", &perform)
|
29
31
|
end
|
30
32
|
end
|
31
33
|
end
|
@@ -7,7 +7,7 @@ module ColumnsTrace
|
|
7
7
|
ColumnsTrace.backtrace_cleaner = Rails.backtrace_cleaner
|
8
8
|
|
9
9
|
logger = ActiveSupport::Logger.new(Rails.root.join("log", "columns_trace.log"))
|
10
|
-
ColumnsTrace.reporter
|
10
|
+
ColumnsTrace.reporter ||= LogReporter.new(logger)
|
11
11
|
end
|
12
12
|
end
|
13
13
|
end
|
@@ -3,10 +3,8 @@
|
|
3
3
|
module ColumnsTrace
|
4
4
|
# @private
|
5
5
|
class SidekiqMiddleware
|
6
|
-
def call(worker, _job, _queue)
|
7
|
-
|
8
|
-
yield
|
9
|
-
ColumnsTrace.reporter.report(worker.class.name, Registry.created_records)
|
6
|
+
def call(worker, _job, _queue, &block)
|
7
|
+
ColumnsTrace.report("#{worker.class.name}#perform", &block)
|
10
8
|
end
|
11
9
|
end
|
12
10
|
end
|
data/lib/columns_trace.rb
CHANGED
@@ -11,6 +11,23 @@ require_relative "columns_trace/railtie" if defined?(Rails)
|
|
11
11
|
|
12
12
|
module ColumnsTrace
|
13
13
|
class << self
|
14
|
+
# Manually trace columns usage in an arbitrary code.
|
15
|
+
#
|
16
|
+
# @param title [String] title of the reporting, e.g. controller action etc
|
17
|
+
#
|
18
|
+
# @example
|
19
|
+
# task my_rake_task: :environment do
|
20
|
+
# ColumnsTrace.report("my_rake_task") do
|
21
|
+
# # do stuff
|
22
|
+
# end
|
23
|
+
# end
|
24
|
+
#
|
25
|
+
def report(title)
|
26
|
+
Registry.clear
|
27
|
+
yield
|
28
|
+
reporter.report(title, Registry.created_records)
|
29
|
+
end
|
30
|
+
|
14
31
|
# @private
|
15
32
|
attr_reader :ignored_models
|
16
33
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: columns_trace
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- fatkodima
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-09-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -66,7 +66,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
66
66
|
- !ruby/object:Gem::Version
|
67
67
|
version: '0'
|
68
68
|
requirements: []
|
69
|
-
rubygems_version: 3.4.
|
69
|
+
rubygems_version: 3.4.19
|
70
70
|
signing_key:
|
71
71
|
specification_version: 4
|
72
72
|
summary: Find unnecessary selected database columns.
|