debugbar 0.2.2 → 0.3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '023396ca9b63235df981073be37ba1c02f68584addfd4aea1ce5fd8cc2f26e7a'
4
- data.tar.gz: 5e18fa015119f4f12b4b88b0b61aded188adf63423f9ab2e2fac143e9cde7200
3
+ metadata.gz: 9533b2b578ca8071254a691d573f41708598945ab8ee666d45655f65f6b30730
4
+ data.tar.gz: 4aba711679f6a65212f6fa88d543108e64c9a33f3fd99c59a3566d032f67e26b
5
5
  SHA512:
6
- metadata.gz: ebab920034a04aaec3a2e794a00f32b0ba51aa9da5f6d97783e2416c75c78a6f726215da6b99a5c834887fb21a4b9b1257477d80d530753aa50b9a6354afa377
7
- data.tar.gz: 4793837756dd498294a9cf42b7b3b8aaf263e52f70ff73dfcaca5013452f9c7310964fbd204a4397360b9755439709d470c1ef8fd24681d1e3c32746b058a2d2
6
+ metadata.gz: 92d5d50ff82b3087cd332133e5c87733a7b2dc4eaa46c65fe4f5cac909d064a4a1c65612650a1eb10b18350272c8ae3f205663571793635c64a59369cb8aa545
7
+ data.tar.gz: fd282177ec09843ab1a90ab9a71bb0838225e9958e2d443175faa3f60b8c5b87f7f78ca11bf8a867f671d906d045a0f87508ccc2c777e126f965fdd00161a3d2
data/CHANGELOG.md CHANGED
@@ -1,5 +1,40 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.3.1 - 2024-05-01
4
+
5
+ * Add `active_record.adapter` config to help frontend format SQL queries - See [#35](https://github.com/julienbourdeau/debugbar/pull/35)
6
+ * Add `minimized` config key to start the debugbar minimized - See [2046b054](https://github.com/julienbourdeau/debugbar/commit/0178443d268d2a740a0d73b4039a03dd)
7
+ * Use `:null_session` to disable forgery protection when using polling - See [#27](https://github.com/julienbourdeau/debugbar/pull/27)
8
+
9
+ ## v0.3.0 - 2024-03-31
10
+
11
+ * Add support for Turbo Drive - See [#25](https://github.com/julienbourdeau/debugbar/pull/25) and [#26](https://github.com/julienbourdeau/debugbar/pull/26)
12
+ * Fix error "undefined method `adapter_name' for ActiveJob:Module" for Rails < 7.1 - See [#24](https://github.com/julienbourdeau/debugbar/pull/24)
13
+ * Limit the number of request to 25, configurable with `maxRequests` option - See [664f2c11](https://github.com/julienbourdeau/debugbar/commit/664f2c11e56f18a7c3e4a9fb83ba5b7e19fbb9a9)
14
+
15
+ ### Breaking changes
16
+
17
+ In order to support Turbo Drive, I had to split the helper into two parts. Before the JavaScript file was loaded,
18
+ directly in the body, but it has to be loaded in the head now.
19
+
20
+ If you were passing configuation t `debugbar_javascript`, you must now pass it to `debugbar_body`.
21
+
22
+ ```diff
23
+ <!DOCTYPE html>
24
+ <html>
25
+ <head>
26
+ ...
27
+ + <%= debugbar_head %>
28
+ </head>
29
+
30
+ <body>
31
+ ...
32
+ - <%= debugbar_javascript %>
33
+ + <%= debugbar_body %>
34
+ </body>
35
+ </html>
36
+ ```
37
+
3
38
  ## v0.2.0 - 2024-02-28
4
39
 
5
40
  * Introduce polling in case someone cannot use ActiveCable - See [8b262be7](https://github.com/julienbourdeau/debugbar/commit/8b262be7b644c7b587a6c3348bb02076053a344f)
@@ -1,6 +1,6 @@
1
1
  module Debugbar
2
2
  class PollingController < ApplicationController
3
- skip_before_action :verify_authenticity_token, only: [:confirm]
3
+ protect_from_forgery with: :null_session
4
4
  before_action :cors_set_access_control_headers
5
5
 
6
6
  def poll
@@ -1,5 +1,11 @@
1
1
  module Debugbar::TagHelpers
2
- def debugbar_javascript(opt = {})
2
+ def debugbar_head
3
+ raw <<-HTML
4
+ <script defer src="#{Debugbar.config.prefix}/assets/script"></script>
5
+ HTML
6
+ end
7
+
8
+ def debugbar_body(opt = {})
3
9
  opt = ActiveSupport::HashWithIndifferentAccess.new(opt)
4
10
 
5
11
  # See https://github.com/julienbourdeau/debugbar/issues/8
@@ -7,20 +13,36 @@ module Debugbar::TagHelpers
7
13
  opt[:mode] = 'poll'
8
14
  end
9
15
 
16
+ if opt[:active_record].nil?
17
+ opt[:active_record] = { adapter: db_adapter }
18
+ end
19
+
10
20
  html = <<-HTML
11
- <div id="__debugbar"></div>
21
+ <div id="__debugbar" data-turbo-permanent></div>
12
22
  HTML
13
23
 
14
24
  html += <<-HTML
15
- <script type="text/javascript">
25
+ <script type="text/javascript" data-turbo-permanent>
16
26
  window._debugbarConfigOptions = #{opt.to_json}
17
27
  </script>
18
28
  HTML
19
29
 
20
- html += <<-HTML
21
- <script defer src="#{Debugbar.config.prefix}/assets/script"></script>
22
- HTML
23
-
24
30
  raw html
25
31
  end
32
+
33
+ def debugbar_javascript(opt = {})
34
+ errors = [""]
35
+ errors << "debugbar_javascript was removed in 0.3.0."
36
+ errors << "Please use `debugbar_head` inside <head> and `debugbar_body` at the end of <body> instead."
37
+ errors << "It was split to support Turbo Drive."
38
+ errors << "See https://debugbar.dev/changelog/ for more information."
39
+ errors << ""
40
+ raise errors.join("\n")
41
+ end
42
+
43
+ private
44
+
45
+ def db_adapter
46
+ ActiveRecord::Base.connection.adapter_name.downcase
47
+ end
26
48
  end
@@ -82,15 +82,25 @@ module Debugbar
82
82
  # else
83
83
  # failed_enqueue_count = jobs.size - enqueued_count
84
84
  # "Failed enqueuing #{failed_enqueue_count} #{'job'.pluralize(failed_enqueue_count)} "\
85
- # "to #{ActiveJob.adapter_name(adapter)}"
85
+ # "to #{adapter_name(adapter)}"
86
86
  # end
87
87
  # end
88
88
  # end
89
89
  # # subscribe_log_level :enqueue_all, :info
90
90
 
91
91
  private
92
+
93
+ # See ActiveJob.adapter_name for orignal implementation. This is redefined here
94
+ # to be compatible with the older Rails version.
95
+ def adapter_name(adapter) # :nodoc:
96
+ return adapter.queue_adapter_name if adapter.respond_to?(:queue_adapter_name)
97
+
98
+ adapter_class = adapter.is_a?(Module) ? adapter : adapter.class
99
+ "#{adapter_class.name.demodulize.delete_suffix('Adapter')}"
100
+ end
101
+
92
102
  def queue_name(event)
93
- ActiveJob.adapter_name(event.payload[:adapter]) + "(#{event.payload[:job].queue_name})"
103
+ adapter_name(event.payload[:adapter]) + "(#{event.payload[:job].queue_name})"
94
104
  end
95
105
 
96
106
  def args_info(job)
@@ -150,7 +160,7 @@ module Debugbar
150
160
  def enqueued_jobs_message(adapter, enqueued_jobs)
151
161
  enqueued_count = enqueued_jobs.size
152
162
  job_classes_counts = enqueued_jobs.map(&:class).tally.sort_by { |_k, v| -v }
153
- "Enqueued #{enqueued_count} #{'job'.pluralize(enqueued_count)} to #{ActiveJob.adapter_name(adapter)}"\
163
+ "Enqueued #{enqueued_count} #{'job'.pluralize(enqueued_count)} to #{adapter_name(adapter)}"\
154
164
  " (#{job_classes_counts.map { |klass, count| "#{count} #{klass}" }.join(', ')})"
155
165
  end
156
166
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Debugbar
4
- VERSION = "0.2.2"
4
+ VERSION = "0.3.1"
5
5
  end