Sha256: 420ae71080bbb327a69ac8e2a73b33de18b3fbddf22293af2c4edf1d8915e229
Contents?: true
Size: 1.3 KB
Versions: 5
Compression:
Stored size: 1.3 KB
Contents
module Debase class Context def frame_locals(frame_no=0) result = {} binding = frame_binding(frame_no) locals = eval("local_variables", binding) if locals.respond_to?(:each) locals.each do |local| result[local.to_s] = safe_eval(local.to_s, binding) end else result[locals.to_s] = safe_eval(locals.to_s, binding) end result end def frame_class(frame_no=0) frame_self(frame_no).class end def frame_args_info(frame_no=0) nil end def handler Debase.handler or raise "No interface loaded" end def at_breakpoint(breakpoint) handler.at_breakpoint(self, breakpoint) end def at_catchpoint(excpt) handler.at_catchpoint(self, excpt) end def at_tracing(file, line) @tracing_started = true if File.identical?(file, File.join(Debugger::INITIAL_DIR, Debugger::PROG_SCRIPT)) handler.at_tracing(self, file, line) if @tracing_started end def at_line(file, line) handler.at_line(self, file, line) end def at_return(file, line) handler.at_return(self, file, line) end private def safe_eval(expr, binding) begin eval(expr, binding) rescue => e "*Evaluation error: '#{e}'" end end end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
debase-0.2.2.beta1 | lib/debase/context.rb |
debase-0.2.1 | lib/debase/context.rb |
debase-0.2.0 | lib/debase/context.rb |
debase-0.2.0.beta1 | lib/debase/context.rb |
debase-0.1.8 | lib/debase/context.rb |