Module: Panda::Core::Debug

Defined in:
lib/panda/core/debug.rb

Class Method Summary collapse

Class Method Details

.enable_http_debug!Object

Enable HTTP debugging for Net::HTTP requests



37
38
39
40
41
42
43
# File 'lib/panda/core/debug.rb', line 37

def enable_http_debug!
  return unless enabled? || ENV["DEBUG_HTTP"].to_s.downcase == "true"

  require "net/http"
  Net::HTTP.set_debug_output($stdout)
  log("HTTP debugging enabled - all HTTP requests will be logged")
end

.enabled?Boolean

Check if debug mode is enabled via PANDA_DEBUG environment variable

Returns:

  • (Boolean)


8
9
10
# File 'lib/panda/core/debug.rb', line 8

def enabled?
  ENV["PANDA_DEBUG"].to_s.downcase == "true" || ENV["PANDA_DEBUG"] == "1"
end

.inspect(object, label: nil, prefix: "PANDA") ⇒ Object

Log an object with pretty printing (using awesome_print if available)



21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/panda/core/debug.rb', line 21

def inspect(object, label: nil, prefix: "PANDA")
  return unless enabled?

  timestamp = Time.current.strftime("%Y-%m-%d %H:%M:%S")
  header = label ? "#{label}: " : ""

  puts "\n[#{prefix} DEBUG #{timestamp}] #{header}"
  if defined?(AwesomePrint)
    ap object
  else
    pp object
  end
  puts
end

.log(message, prefix: "PANDA") ⇒ Object

Log a debug message if debug mode is enabled



13
14
15
16
17
18
# File 'lib/panda/core/debug.rb', line 13

def log(message, prefix: "PANDA")
  return unless enabled?

  timestamp = Time.current.strftime("%Y-%m-%d %H:%M:%S")
  puts "[#{prefix} DEBUG #{timestamp}] #{message}"
end