Sha256: ee8d78f555d118f339350e65866a35acf3f4011f504e09687df8dbd8f01d9d8c
Contents?: true
Size: 1.85 KB
Versions: 1
Compression:
Stored size: 1.85 KB
Contents
module PryDebugger # Wrapper for Debugger.breakpoints that respects our Processor and has better # failure behavior. Acts as an Enumerable. # module Breakpoints extend Enumerable extend self # Add a new breakpoint. def add(file, line, expression = nil) raise ArgumentError, 'Invalid file!' unless File.exist?(file) Pry.processor.debugging = true Debugger.add_breakpoint(File.expand_path(file), line, expression) end # Change the conditional expression for a breakpoint. def change(id, expression = nil) breakpoint = find_by_id(id) breakpoint.expr = expression breakpoint end # Delete an existing breakpoint with the given ID. def delete(id) unless Debugger.started? && Debugger.remove_breakpoint(id) raise ArgumentError, "No breakpoint ##{id}" end Pry.processor.debugging = false if to_a.empty? end # Delete all breakpoints. def clear Debugger.breakpoints.clear if Debugger.started? Pry.processor.debugging = false end # Enable a disabled breakpoint with the given ID. def enable(id) change_status id, true end # Disable a breakpoint with the given ID. def disable(id) change_status id, false end # Disable all breakpoints. def disable_all each do |breakpoint| breakpoint.enabled = false end end def to_a Debugger.started? ? Debugger.breakpoints : [] end def size to_a.size end def each(&block) to_a.each(&block) end def find_by_id(id) breakpoint = find { |b| b.id == id } raise ArgumentError, "No breakpoint ##{id}!" unless breakpoint breakpoint end private def change_status(id, enabled = true) breakpoint = find_by_id(id) breakpoint.enabled = enabled breakpoint end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
pry-debugger-0.2.0 | lib/pry-debugger/breakpoints.rb |