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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c9a8291697321237133216a66cb9d58b1e526fe537dddd05644c1fafeaaafb36
4
- data.tar.gz: 4ff9fe36c9efd852b03dfc45b7511a74f08f6d92687582ca1316dd8a992031e2
3
+ metadata.gz: a82b0ad009d2cde41d3b6ed06e4e7446fdbdf4a6859320c31e3088e6ef407f86
4
+ data.tar.gz: 73bac370ea7ba50131e1229dbe08dcec1ad3bbce250eaeb3cf0aeb143157f4ab
5
5
  SHA512:
6
- metadata.gz: 7151e6f098431af83070f860877bf3a7e7446b3b13ba0116c56cf5b6b77bf023282c602bf78e1cca181e5cef25ac3e27fac6b2a95ca45d9c1e69b01652efea5b
7
- data.tar.gz: bebf3b0e9acbaaf3f4b60753903f48cd548b9e935061c6a28333e8b53eaff8f2099e0d5ff34234864c257c7110b8ce6a7ad75d3e0cae84bd23e264118ee652d8
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
- <%- if @data.present? %>
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
- return find_existing_arguments_record if max_records_reached?
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
- return find_existing_backtrace_record if max_records_reached?
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
- return find_existing_render_metadata_record if max_records_reached?
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
- return find_existing_view_render_record if max_records_reached?
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.create(
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
- rescue ActiveRecord::RecordNotUnique
87
- CruftTracker::Method.find_by(
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
@@ -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
- initializer 'local_helper.action_controller' do
13
- ActiveSupport.on_load :action_controller do
14
- helper CruftTracker::ApplicationHelper
15
- end
16
- end
13
+
17
14
  end
18
15
  end
@@ -1,3 +1,3 @@
1
1
  module CruftTracker
2
- VERSION = '0.2.1'
2
+ VERSION = '0.2.4'
3
3
  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.1
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-07-07 00:00:00.000000000 Z
12
+ date: 2022-08-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: active_interaction