debugbar 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. checksums.yaml +7 -0
  2. data/.prettierrc +6 -0
  3. data/LICENSE.txt +21 -0
  4. data/README.md +5 -0
  5. data/Rakefile +4 -0
  6. data/app/channels/debugbar/debugbar_channel.rb +26 -0
  7. data/app/controllers/debugbar/application_controller.rb +4 -0
  8. data/app/controllers/debugbar/assets_controller.rb +15 -0
  9. data/app/helpers/debugbar/tag_helpers.rb +19 -0
  10. data/app/models/debugbar/application_record.rb +5 -0
  11. data/client/.gitignore +25 -0
  12. data/client/README.md +0 -0
  13. data/client/dist/.vite/manifest.json +14 -0
  14. data/client/dist/assets/debugbar-u5mP-5-z.js +34 -0
  15. data/client/dist/assets/ruby-logo-kn_8RniZ.svg +946 -0
  16. data/client/index.html +78 -0
  17. data/client/package-lock.json +2393 -0
  18. data/client/package.json +32 -0
  19. data/client/postcss.config.js +6 -0
  20. data/client/src/App.vue +17 -0
  21. data/client/src/AppDemo.vue +29 -0
  22. data/client/src/AppDev.vue +20 -0
  23. data/client/src/Debugbar.vue +276 -0
  24. data/client/src/assets/rails-logo.svg +1 -0
  25. data/client/src/assets/ruby-logo.svg +946 -0
  26. data/client/src/components/TabButton.vue +32 -0
  27. data/client/src/components/panels/CachePanel.vue +41 -0
  28. data/client/src/components/panels/JobsPanel.vue +52 -0
  29. data/client/src/components/panels/JsonPanel.vue +15 -0
  30. data/client/src/components/panels/LogsPanel.vue +43 -0
  31. data/client/src/components/panels/MessagesPanel.vue +25 -0
  32. data/client/src/components/panels/ModelsPanel.vue +37 -0
  33. data/client/src/components/panels/Panel.vue +7 -0
  34. data/client/src/components/panels/RequestPanel.vue +98 -0
  35. data/client/src/components/queries/QueriesPanel.vue +17 -0
  36. data/client/src/components/queries/QueryItem.vue +65 -0
  37. data/client/src/components/ui/Foldable.vue +39 -0
  38. data/client/src/components/ui/KeyValueTable.vue +16 -0
  39. data/client/src/components/ui/Row.vue +14 -0
  40. data/client/src/components/ui/logo-ruby.vue +547 -0
  41. data/client/src/demo.ts +17 -0
  42. data/client/src/dev.ts +20 -0
  43. data/client/src/main.ts +17 -0
  44. data/client/src/models/Config.ts +27 -0
  45. data/client/src/models/Request.ts +183 -0
  46. data/client/src/stores/RequestsStore.ts +36 -0
  47. data/client/src/stores/configStore.ts +8 -0
  48. data/client/src/style.css +23 -0
  49. data/client/src/types.d.ts +9 -0
  50. data/client/src/vite-env.d.ts +1 -0
  51. data/client/tailwind.config.js +16 -0
  52. data/client/tsconfig.json +29 -0
  53. data/client/tsconfig.node.json +10 -0
  54. data/client/vite.config.ts +44 -0
  55. data/config/routes.rb +7 -0
  56. data/debugbar.gemspec +38 -0
  57. data/fixtures/requests/1706607114--demo_post_list.json +499 -0
  58. data/fixtures/requests/1706607120--api_jobs.json +176 -0
  59. data/fixtures/requests/1706607123--api_jobs.json +119 -0
  60. data/fixtures/requests/1706607133--demo_slow_page.json +130 -0
  61. data/fixtures/requests/1706607136--demo_post.json +164 -0
  62. data/fixtures/requests/1706607136--demo_random_post.json +106 -0
  63. data/fixtures/requests/1706607141--api_errors.json +73 -0
  64. data/lib/debugbar/buffers/memory_buffer.rb +34 -0
  65. data/lib/debugbar/buffers/null_buffer.rb +18 -0
  66. data/lib/debugbar/buffers/request_buffer.rb +31 -0
  67. data/lib/debugbar/config.rb +50 -0
  68. data/lib/debugbar/current.rb +18 -0
  69. data/lib/debugbar/engine.rb +96 -5
  70. data/lib/debugbar/loggers/simple_logger.rb +34 -0
  71. data/lib/debugbar/middlewares/track_current_request.rb +35 -0
  72. data/lib/debugbar/request.rb +98 -0
  73. data/lib/debugbar/subscribers/action_controller.rb +33 -0
  74. data/lib/debugbar/subscribers/active_job.rb +158 -0
  75. data/lib/debugbar/subscribers/active_record.rb +65 -0
  76. data/lib/debugbar/subscribers/active_support.rb +30 -0
  77. data/lib/debugbar/version.rb +5 -0
  78. data/lib/debugbar.rb +86 -5
  79. data/package-lock.json +50 -0
  80. data/package.json +5 -0
  81. data/sig/debugbar.rbs +4 -0
  82. metadata +143 -47
  83. data/README.textile +0 -18
  84. data/lib/debugbar/railties/tasks.rake +0 -1
@@ -0,0 +1,158 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Debugbar
4
+ class ActiveJobEventSubscriber
5
+ class_attribute :backtrace_cleaner, default: ActiveSupport::BacktraceCleaner.new
6
+
7
+ class << self
8
+ def enqueue(event)
9
+ return if Debugbar::Current.ignore?
10
+
11
+ job = event.payload[:job]
12
+ ex = event.payload[:exception_object] || job.enqueue_error
13
+
14
+ logs = []
15
+ logs << if ex
16
+ "Failed enqueuing #{job.class.name} to #{queue_name(event)}: #{ex.class} (#{ex.message})"
17
+ elsif event.payload[:aborted]
18
+ "Failed enqueuing #{job.class.name} to #{queue_name(event)}, a before_enqueue callback halted the enqueuing execution."
19
+ else
20
+ "Enqueued #{job.class.name} (Job ID: #{job.job_id}) to #{queue_name(event)}" + args_info(job)
21
+ end
22
+ logs << log_enqueue_source
23
+
24
+ Debugbar::Tracker.add_job({
25
+ id: job.job_id,
26
+ class: job.class.name,
27
+ queue: queue_name(event),
28
+ args: job.arguments.map { |arg| format(arg) },
29
+ successfully_enqueued: job.successfully_enqueued?,
30
+ scheduled_at: scheduled_at(job),
31
+ logs: logs,
32
+ })
33
+ end
34
+ # subscribe_log_level :enqueue, :info # ???
35
+
36
+ def enqueue_at(event)
37
+ return if Debugbar::Current.ignore?
38
+
39
+ job = event.payload[:job]
40
+ ex = event.payload[:exception_object] || job.enqueue_error
41
+
42
+ logs = []
43
+ logs << if ex
44
+ "Failed enqueuing #{job.class.name} to #{queue_name(event)}: #{ex.class} (#{ex.message})"
45
+ elsif event.payload[:aborted]
46
+ "Failed enqueuing #{job.class.name} to #{queue_name(event)}, a before_enqueue callback halted the enqueuing execution."
47
+ else
48
+ "Enqueued #{job.class.name} (Job ID: #{job.job_id}) to #{queue_name(event)} at #{scheduled_at(job)}" + args_info(job)
49
+ end
50
+ logs << log_enqueue_source
51
+
52
+ Debugbar::Tracker.add_job({
53
+ id: job.job_id,
54
+ class: job.class.name,
55
+ queue: queue_name(event),
56
+ args: job.arguments.map { |arg| format(arg) },
57
+ successfully_enqueued: job.successfully_enqueued?,
58
+ scheduled_at: scheduled_at(job),
59
+ logs: logs,
60
+ })
61
+ end
62
+ # subscribe_log_level :enqueue_at, :info
63
+
64
+ # def enqueue_all(event)
65
+ # info do
66
+ # jobs = event.payload[:jobs]
67
+ # adapter = event.payload[:adapter]
68
+ # enqueued_count = event.payload[:enqueued_count]
69
+ #
70
+ # if enqueued_count == jobs.size
71
+ # enqueued_jobs_message(adapter, jobs)
72
+ # elsif jobs.any?(&:successfully_enqueued?)
73
+ # enqueued_jobs = jobs.select(&:successfully_enqueued?)
74
+ #
75
+ # failed_enqueue_count = jobs.size - enqueued_count
76
+ # if failed_enqueue_count == 0
77
+ # enqueued_jobs_message(adapter, enqueued_jobs)
78
+ # else
79
+ # "#{enqueued_jobs_message(adapter, enqueued_jobs)}. "\
80
+ # "Failed enqueuing #{failed_enqueue_count} #{'job'.pluralize(failed_enqueue_count)}"
81
+ # end
82
+ # else
83
+ # failed_enqueue_count = jobs.size - enqueued_count
84
+ # "Failed enqueuing #{failed_enqueue_count} #{'job'.pluralize(failed_enqueue_count)} "\
85
+ # "to #{ActiveJob.adapter_name(adapter)}"
86
+ # end
87
+ # end
88
+ # end
89
+ # # subscribe_log_level :enqueue_all, :info
90
+
91
+ private
92
+ def queue_name(event)
93
+ ActiveJob.adapter_name(event.payload[:adapter]) + "(#{event.payload[:job].queue_name})"
94
+ end
95
+
96
+ def args_info(job)
97
+ if job.class.log_arguments? && job.arguments.any?
98
+ " with arguments: " +
99
+ job.arguments.map { |arg| format(arg).inspect }.join(", ")
100
+ else
101
+ ""
102
+ end
103
+ end
104
+
105
+ def format(arg)
106
+ case arg
107
+ when Hash
108
+ arg.transform_values { |value| format(value) }
109
+ when Array
110
+ arg.map { |value| format(value) }
111
+ when GlobalID::Identification
112
+ arg.to_global_id rescue arg
113
+ else
114
+ arg
115
+ end
116
+ end
117
+
118
+ def scheduled_at(job)
119
+ Time.at(job.scheduled_at).utc if job.scheduled_at
120
+ end
121
+
122
+ def logger
123
+ ActiveJob::Base.logger
124
+ end
125
+
126
+ def info(progname = nil, &block)
127
+ return unless super
128
+
129
+ if ActiveJob.verbose_enqueue_logs
130
+ log_enqueue_source
131
+ end
132
+ end
133
+
134
+ def error(progname = nil, &block)
135
+ return unless super
136
+
137
+ if ActiveJob.verbose_enqueue_logs
138
+ log_enqueue_source
139
+ end
140
+ end
141
+
142
+ def log_enqueue_source
143
+ extract_enqueue_source_location(caller)
144
+ end
145
+
146
+ def extract_enqueue_source_location(locations)
147
+ backtrace_cleaner.clean(locations.lazy).first
148
+ end
149
+
150
+ def enqueued_jobs_message(adapter, enqueued_jobs)
151
+ enqueued_count = enqueued_jobs.size
152
+ 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)}"\
154
+ " (#{job_classes_counts.map { |klass, count| "#{count} #{klass}" }.join(', ')})"
155
+ end
156
+ end
157
+ end
158
+ end
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Debugbar
4
+ class ActiveRecordEventSubscriber
5
+ class_attribute :backtrace_cleaner, default: ActiveSupport::BacktraceCleaner.new
6
+
7
+ class << self
8
+ def sql(event)
9
+ return if Debugbar::Current.ignore?
10
+
11
+ payload = event.payload
12
+
13
+ return if payload[:name]&.starts_with? "SCHEMA"
14
+
15
+ title = if payload[:async]
16
+ "ASYNC #{payload[:name]} (#{payload[:lock_wait].round(1)}ms) (db time #{event.duration.round(1)}ms)"
17
+ else
18
+ "#{payload[:name] || "Unnamed"} (#{event.duration.round(1)}ms)"
19
+ end
20
+ title = "CACHE #{title}" if payload[:cached]
21
+
22
+ sql = payload[:sql]&.gsub(/\/\*.*\*\//, "") # remove comments
23
+
24
+ binds = nil
25
+ if payload[:binds]&.any?
26
+ casted_params = type_casted_binds(payload[:type_casted_binds])
27
+
28
+ binds = []
29
+ payload[:binds].each_with_index do |attr, i|
30
+ attribute_name = if attr.respond_to?(:name)
31
+ attr.name
32
+ elsif attr.respond_to?(:[]) && attr[i].respond_to?(:name)
33
+ attr[i].name
34
+ else
35
+ nil
36
+ end
37
+
38
+ filtered_params = filter(attribute_name, casted_params[i])
39
+
40
+ binds << render_bind(attr, filtered_params)
41
+ end
42
+ binds = binds.inspect
43
+ binds.prepend(" ")
44
+ end
45
+
46
+ Debugbar::Tracker.add_query({
47
+ id: event.transaction_id,
48
+ title: title,
49
+ name: payload[:name],
50
+ sql: sql,
51
+ cached: payload[:cached].present?,
52
+ async: payload[:async],
53
+ duration: event.duration.round(1),
54
+ lock_wait: payload[:lock_wait]&.round(1),
55
+ binds: binds,
56
+ source: query_source_location&.split(":in"),
57
+ })
58
+ end
59
+
60
+ def query_source_location
61
+ backtrace_cleaner.clean(caller(3))[0]
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,30 @@
1
+ module Debugbar
2
+ class ActiveSupportEventSubscriber
3
+ class << self
4
+ def cache(event)
5
+ evt = event.payload
6
+ evt[:name] = event.name
7
+ evt[:transaction_id] = event.transaction_id
8
+ evt[:time] = Time.at(event.time).strftime(Debugbar::TIME_FORMAT)
9
+ evt[:label] = case event.name
10
+ when "cache_read.active_support"
11
+ "read"
12
+ when "cache_generate.active_support"
13
+ "generate"
14
+ when "cache_fetch_hit.active_support"
15
+ "fetch hit"
16
+ when "cache_write.active_support"
17
+ "write"
18
+ when "cache_delete.active_support"
19
+ "delete"
20
+ when "cache_exist?.active_support"
21
+ "exist?"
22
+ else
23
+ "unknown"
24
+ end
25
+
26
+ Debugbar::Tracker.add_cache evt
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Debugbar
4
+ VERSION = "0.1.0"
5
+ end
data/lib/debugbar.rb CHANGED
@@ -1,8 +1,89 @@
1
- require 'pathname'
2
- require 'debugbar/engine' if defined?(Rails) && Rails::VERSION::MAJOR >= 3
1
+ # frozen_string_literal: true
3
2
 
4
- module DebugBar
5
- def self.root
6
- Pathname.new(File.join(File.dirname(__FILE__), ".."))
3
+ module Debugbar
4
+ autoload :VERSION, "debugbar/version"
5
+ autoload :Current, "debugbar/current"
6
+ autoload :Request, "debugbar/request"
7
+ autoload :RequestBuffer, "debugbar/buffers/request_buffer"
8
+ autoload :SimpleLogger, "debugbar/loggers/simple_logger"
9
+
10
+ TIME_FORMAT = "%H:%M:%S.%L"
11
+
12
+ module Tracker
13
+ class << self
14
+ SETTERS = %i[request response headers meta].freeze
15
+ METHODS = %i[inc_model add_query add_job add_cache add_log].freeze
16
+
17
+ SETTERS.each do |m|
18
+ define_method("#{m}=") do |val|
19
+ if Current.request.nil?
20
+ # TODO: Much, much better logging needed
21
+ puts "The current request is not set yet. Was trying to set #{m}=[#{val.class.name}]."
22
+ else
23
+ Current.request.send("#{m}=", val)
24
+ end
25
+ end
26
+ end
27
+
28
+ METHODS.each do |m|
29
+ define_method(m) do |*args, &block|
30
+ if Current.request
31
+ return Current.request.send(m, *args, &block)
32
+ end
33
+
34
+ if Current.request.nil? && ENV["DEBUGBAR_VERBOSE_MODE"] == "true"
35
+ puts "The current request is not set yet. Was trying to call #{m}(#{args.map{ _1.class.name}.join(',')})."
36
+ pp args
37
+ nil
38
+ end
39
+ end
40
+ end
41
+
42
+ def msg(msg, *extra)
43
+ if Current.request.nil?
44
+ puts "The current request is not set yet. Printing to STDOUT instead."
45
+ puts msg, extra
46
+ else
47
+ Current.request.add_msg(msg, extra)
48
+ end
49
+ end
50
+ end
51
+ end
52
+
53
+ include Tracker
54
+
55
+ class << self
56
+ def config
57
+ @config ||= Config.new(enabled: true)
58
+ end
59
+
60
+ def configure
61
+ yield config
62
+ end
63
+
64
+ def connect!
65
+ @connected = true
66
+ end
67
+
68
+ def disconnect!
69
+ @connected = false
70
+ end
71
+
72
+ def connected?
73
+ @connected
74
+ end
75
+
76
+ def js_file=(js_file)
77
+ @js_file = js_file
78
+ end
79
+ def js_file
80
+ @js_file
81
+ end
82
+
83
+ def msg(msg, *extra)
84
+ Tracker.msg(msg, *extra)
85
+ end
7
86
  end
8
87
  end
88
+
89
+ require 'debugbar/engine'
data/package-lock.json ADDED
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "debugbar_rb",
3
+ "lockfileVersion": 3,
4
+ "requires": true,
5
+ "packages": {
6
+ "": {
7
+ "dependencies": {
8
+ "prettier": "^3.1.0",
9
+ "vue-shadow-dom": "^4.2.0"
10
+ },
11
+ "devDependencies": {
12
+ "@types/node": "^20.10.4"
13
+ }
14
+ },
15
+ "node_modules/@types/node": {
16
+ "version": "20.10.4",
17
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.4.tgz",
18
+ "integrity": "sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg==",
19
+ "dev": true,
20
+ "dependencies": {
21
+ "undici-types": "~5.26.4"
22
+ }
23
+ },
24
+ "node_modules/prettier": {
25
+ "version": "3.1.0",
26
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz",
27
+ "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==",
28
+ "bin": {
29
+ "prettier": "bin/prettier.cjs"
30
+ },
31
+ "engines": {
32
+ "node": ">=14"
33
+ },
34
+ "funding": {
35
+ "url": "https://github.com/prettier/prettier?sponsor=1"
36
+ }
37
+ },
38
+ "node_modules/undici-types": {
39
+ "version": "5.26.5",
40
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
41
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
42
+ "dev": true
43
+ },
44
+ "node_modules/vue-shadow-dom": {
45
+ "version": "4.2.0",
46
+ "resolved": "https://registry.npmjs.org/vue-shadow-dom/-/vue-shadow-dom-4.2.0.tgz",
47
+ "integrity": "sha512-lguI064rT2HT/dxqSmXtz860KOvCq+W3nU1jMqroTmX3K1H46q22BMR4emh/Ld3ozy35XJKOaNGcr6mkJ/t/yg=="
48
+ }
49
+ }
50
+ }
data/package.json ADDED
@@ -0,0 +1,5 @@
1
+ {
2
+ "dependencies": {
3
+ "prettier": "^3.1.0"
4
+ }
5
+ }
data/sig/debugbar.rbs ADDED
@@ -0,0 +1,4 @@
1
+ module Debugbar
2
+ VERSION: String
3
+ # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
+ end
metadata CHANGED
@@ -1,59 +1,155 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: debugbar
3
- version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.0.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
6
5
  platform: ruby
7
- authors:
8
- - Andy Jeffries
9
- autorequire:
10
- bindir: bin
6
+ authors:
7
+ - Julien Bourdeau
8
+ autorequire:
9
+ bindir: exe
11
10
  cert_chain: []
12
-
13
- date: 2011-03-17 00:00:00 +00:00
14
- default_executable:
15
- dependencies: []
16
-
17
- description: Debugbar gem for Rails 3
18
- email: andy@andyjeffries.co.uk
11
+ date: 2024-02-13 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: actioncable
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: Get a better understanding of your application performance and behavior
42
+ (SQL queries, jobs, cache, routes, logs, etc)
43
+ email:
44
+ - julien@debugbar.dev
19
45
  executables: []
20
-
21
46
  extensions: []
22
-
23
- extra_rdoc_files:
24
- - README.textile
25
- files:
47
+ extra_rdoc_files: []
48
+ files:
49
+ - ".prettierrc"
50
+ - LICENSE.txt
51
+ - README.md
52
+ - Rakefile
53
+ - app/channels/debugbar/debugbar_channel.rb
54
+ - app/controllers/debugbar/application_controller.rb
55
+ - app/controllers/debugbar/assets_controller.rb
56
+ - app/helpers/debugbar/tag_helpers.rb
57
+ - app/models/debugbar/application_record.rb
58
+ - client/.gitignore
59
+ - client/README.md
60
+ - client/dist/.vite/manifest.json
61
+ - client/dist/assets/debugbar-u5mP-5-z.js
62
+ - client/dist/assets/ruby-logo-kn_8RniZ.svg
63
+ - client/index.html
64
+ - client/package-lock.json
65
+ - client/package.json
66
+ - client/postcss.config.js
67
+ - client/src/App.vue
68
+ - client/src/AppDemo.vue
69
+ - client/src/AppDev.vue
70
+ - client/src/Debugbar.vue
71
+ - client/src/assets/rails-logo.svg
72
+ - client/src/assets/ruby-logo.svg
73
+ - client/src/components/TabButton.vue
74
+ - client/src/components/panels/CachePanel.vue
75
+ - client/src/components/panels/JobsPanel.vue
76
+ - client/src/components/panels/JsonPanel.vue
77
+ - client/src/components/panels/LogsPanel.vue
78
+ - client/src/components/panels/MessagesPanel.vue
79
+ - client/src/components/panels/ModelsPanel.vue
80
+ - client/src/components/panels/Panel.vue
81
+ - client/src/components/panels/RequestPanel.vue
82
+ - client/src/components/queries/QueriesPanel.vue
83
+ - client/src/components/queries/QueryItem.vue
84
+ - client/src/components/ui/Foldable.vue
85
+ - client/src/components/ui/KeyValueTable.vue
86
+ - client/src/components/ui/Row.vue
87
+ - client/src/components/ui/logo-ruby.vue
88
+ - client/src/demo.ts
89
+ - client/src/dev.ts
90
+ - client/src/main.ts
91
+ - client/src/models/Config.ts
92
+ - client/src/models/Request.ts
93
+ - client/src/stores/RequestsStore.ts
94
+ - client/src/stores/configStore.ts
95
+ - client/src/style.css
96
+ - client/src/types.d.ts
97
+ - client/src/vite-env.d.ts
98
+ - client/tailwind.config.js
99
+ - client/tsconfig.json
100
+ - client/tsconfig.node.json
101
+ - client/vite.config.ts
102
+ - config/routes.rb
103
+ - debugbar.gemspec
104
+ - fixtures/requests/1706607114--demo_post_list.json
105
+ - fixtures/requests/1706607120--api_jobs.json
106
+ - fixtures/requests/1706607123--api_jobs.json
107
+ - fixtures/requests/1706607133--demo_slow_page.json
108
+ - fixtures/requests/1706607136--demo_post.json
109
+ - fixtures/requests/1706607136--demo_random_post.json
110
+ - fixtures/requests/1706607141--api_errors.json
26
111
  - lib/debugbar.rb
112
+ - lib/debugbar/buffers/memory_buffer.rb
113
+ - lib/debugbar/buffers/null_buffer.rb
114
+ - lib/debugbar/buffers/request_buffer.rb
115
+ - lib/debugbar/config.rb
116
+ - lib/debugbar/current.rb
27
117
  - lib/debugbar/engine.rb
28
- - lib/debugbar/railties/tasks.rake
29
- - README.textile
30
- has_rdoc: true
31
- homepage: http://andyjeffries.co.uk/
32
- licenses: []
33
-
34
- post_install_message:
35
- rdoc_options:
36
- - --charset=UTF-8
37
- require_paths:
118
+ - lib/debugbar/loggers/simple_logger.rb
119
+ - lib/debugbar/middlewares/track_current_request.rb
120
+ - lib/debugbar/request.rb
121
+ - lib/debugbar/subscribers/action_controller.rb
122
+ - lib/debugbar/subscribers/active_job.rb
123
+ - lib/debugbar/subscribers/active_record.rb
124
+ - lib/debugbar/subscribers/active_support.rb
125
+ - lib/debugbar/version.rb
126
+ - package-lock.json
127
+ - package.json
128
+ - sig/debugbar.rbs
129
+ homepage: https://debugbar.dev
130
+ licenses:
131
+ - MIT
132
+ metadata:
133
+ homepage_uri: https://debugbar.dev
134
+ source_code_uri: https://github.com/julienbourdeau/debugbar
135
+ changelog_uri: https://debugbar.dev/changelog/
136
+ post_install_message:
137
+ rdoc_options: []
138
+ require_paths:
38
139
  - lib
39
- required_ruby_version: !ruby/object:Gem::Requirement
40
- none: false
41
- requirements:
140
+ required_ruby_version: !ruby/object:Gem::Requirement
141
+ requirements:
42
142
  - - ">="
43
- - !ruby/object:Gem::Version
44
- version: "0"
45
- required_rubygems_version: !ruby/object:Gem::Requirement
46
- none: false
47
- requirements:
143
+ - !ruby/object:Gem::Version
144
+ version: 2.6.0
145
+ required_rubygems_version: !ruby/object:Gem::Requirement
146
+ requirements:
48
147
  - - ">="
49
- - !ruby/object:Gem::Version
50
- version: "0"
148
+ - !ruby/object:Gem::Version
149
+ version: '0'
51
150
  requirements: []
52
-
53
- rubyforge_project:
54
- rubygems_version: 1.6.1
55
- signing_key:
56
- specification_version: 3
57
- summary: Debugbar gem for Rails 3
151
+ rubygems_version: 3.4.20
152
+ signing_key:
153
+ specification_version: 4
154
+ summary: Powerful devtools for Ruby on Rails
58
155
  test_files: []
59
-
data/README.textile DELETED
@@ -1,18 +0,0 @@
1
- h1. Debug Bar Gem v0.0.1
2
-
3
- h2. Installation
4
-
5
- Add the following to your Gemfile:
6
-
7
- <pre><code>gem 'debugbar'</code></pre>
8
-
9
- And restart your application with:
10
-
11
- <pre><code>bundle install
12
- touch tmp/restart.txt</code></pre>
13
-
14
- h2. Introduction
15
-
16
- DebugBar provides a Django/Symfony like Debug Bar for Ruby on Rails 3.
17
-
18
- This project is only in it's infancy...
@@ -1 +0,0 @@
1
- # Put your custom rake tasks here