Module: Quo::Utilities::Callstack

Included in:
Query, Results
Defined in:
lib/quo/utilities/callstack.rb

Instance Method Summary collapse

Instance Method Details

#debug_callstackObject



6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/quo/utilities/callstack.rb', line 6

def debug_callstack
  return unless Rails.env.development?
  callstack_size = Quo.configuration.query_show_callstack_size
  return unless callstack_size&.positive?
  working_dir = Dir.pwd
  exclude = %r{/(gems/|rubies/|query\.rb)}
  stack = Kernel.caller.grep_v(exclude).map { |l| l.gsub(working_dir + "/", "") }
  stack_to_display = stack[0..callstack_size]
  message = "\n[Query stack]: -> #{stack_to_display&.join("\n               &> ")}\n"
  message += " (truncated to #{callstack_size} most recent)" if callstack_size && stack.size > callstack_size
  logger = Quo.configuration.logger&.call
  logger.info(message) if logger
end