Module: Breakpoint::CommandBundle

Defined in:
lib/active_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" }

188
189
190
191
192
193
194
195
# File 'lib/active_support/breakpoint.rb', line 188

def client()
  if Breakpoint.use_drb? then
    sleep(0.5) until Breakpoint.drb_service.eval_handler
    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.


165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
# File 'lib/active_support/breakpoint.rb', line 165

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