Module: Prism::Merge::DebugLogger

Defined in:
lib/prism/merge/debug_logger.rb

Overview

Internal debug logging utility. Only logs when PRISM_MERGE_DEBUG environment variable is set. Optionally uses Ruby’s Logger if available, otherwise falls back to simple puts. rubocop:disable ThreadSafety/ClassInstanceVariable

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.enabledObject (readonly)

Returns the value of attribute enabled.



16
17
18
# File 'lib/prism/merge/debug_logger.rb', line 16

def enabled
  @enabled
end

Class Method Details

.debug(message, context = {}) ⇒ Object

Log a debug message if debugging is enabled

Parameters:

  • message (String)

    The message to log

  • context (Hash) (defaults to: {})

    Optional context information



21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/prism/merge/debug_logger.rb', line 21

def debug(message, context = {})
  return unless enabled

  if logger_available?
    ensure_logger
    context_str = context.empty? ? "" : " #{context.inspect}"
    @logger.debug("[prism-merge] #{message}#{context_str}")
  else
    context_str = context.empty? ? "" : " | #{context.inspect}"
    puts "[DEBUG][prism-merge] #{message}#{context_str}"
  end
end