Top Level Namespace

Defined Under Namespace

Modules: PryMoves, PryRemote, PryStackExplorer Classes: CodeReloader, Pry

Constant Summary collapse

SUFFIX_COMMANDS =
[
  PryMoves::Method,
  PryMoves::ArrayIndex,
  PryMoves::ArrayCall,
  PryMoves::HashKey
]

Instance Method Summary collapse

Instance Method Details

#debug(*args) ⇒ Object



1
2
3
4
5
# File 'lib/sugar/debug_sugar.rb', line 1

def debug *args
  return binding.pry_forced if [:force, :forced].include? args.first
  pry_moves_stack_end = true
  PryMoves.debug *args
end

#error(err = "Error", debug_object = nil) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/sugar/debug_sugar.rb', line 7

def error(err = "Error", debug_object = nil)
  pry_moves_stack_end = true
  message = "😱  #{err}"
  debug_object ||= err. if err.respond_to? :metadata
  unless PryMoves.open? or err.is_a? PryMoves::Restart
    if PryMoves.stop_on_breakpoints
      PryMoves.debug_error message.red, debug_object
    elsif !PryMoves.dont_print_errors
      STDERR.puts PryMoves.format_debug_object(debug_object) if debug_object
      STDERR.puts message.ljust(80, ' ').red
    end
  end
  err = PryMoves::ErrorWithData.new(err, debug_object) unless err.is_a? Exception
  raise err
end

#shit!(err = 'Oh, shit!', debug_object = nil) ⇒ Object



23
24
25
26
27
28
29
30
31
32
# File 'lib/sugar/debug_sugar.rb', line 23

def shit!(err = 'Oh, shit!', debug_object = nil)
  return if ENV['NO_SHIT']
  pry_moves_stack_end = true
  message = "💩  #{err.is_a?(String) ? err : err.message}"
  raise err unless PryMoves.stop_on_breakpoints
  lines = [message.red]
  lines.prepend debug_object.ai if debug_object
  PryMoves.debug_error lines.join("\n")
  nil
end