Module: Breakpoint::CommandBundle

Defined in:
lib/active_record/support/breakpoint.rb

Overview

:nodoc:

Defined Under Namespace

Classes: Client

Instance Method Summary collapse

Instance Method Details

#clientObject

Lets an object that will forward method calls to the breakpoint client. This is useful for outputting longer things at the client and so on. You can for example do these things:

client.puts "Hello" # outputs "Hello" at client console
# outputs "Hello" into the file temp.txt at the client
client.File.open("temp.txt", "w") { |f| f.puts "Hello" }


176
177
178
179
180
181
182
# File 'lib/active_record/support/breakpoint.rb', line 176

def client()
  if Breakpoint.use_drb? then
    Client.new(Breakpoint.drb_service.eval_handler)
  else
    Client.new(lambda { |code| eval(code, TOPLEVEL_BINDING) })
  end
end

#source_lines(context = 5, return_line_numbers = false) ⇒ Object

Returns the source code surrounding the location where the breakpoint was issued.



153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
# File 'lib/active_record/support/breakpoint.rb', line 153

def source_lines(context = 5, return_line_numbers = false)
  lines = File.readlines(@__bp_file).map { |line| line.chomp }

  break_line = @__bp_line
  start_line = [break_line - context, 1].max
  end_line = break_line + context

  result = lines[(start_line - 1) .. (end_line - 1)]

  if return_line_numbers then
    return [start_line, break_line, result]
  else
    return result
  end
end