Class: Breakpoint::DRbService

Inherits:
Object
  • Object
show all
Includes:
DRbUndumped
Defined in:
lib/breakpoint.rb

Overview

:nodoc:

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeDRbService

Returns a new instance of DRbService.



310
311
312
313
314
315
316
317
318
319
# File 'lib/breakpoint.rb', line 310

def initialize
  @handler = @eval_handler = @collision_handler = nil

  begin
    IRB.instance_eval { @CONF[:RC] = true }
    IRB.init_config(nil)
    IRB.run_config
  rescue Exception
  end
end

Instance Attribute Details

#collision_handlerObject

Returns the value of attribute collision_handler.



343
344
345
# File 'lib/breakpoint.rb', line 343

def collision_handler
  @collision_handler
end

#eval_handlerObject

Returns the value of attribute eval_handler.



343
344
345
# File 'lib/breakpoint.rb', line 343

def eval_handler
  @eval_handler
end

#handlerObject

Returns the value of attribute handler.



343
344
345
# File 'lib/breakpoint.rb', line 343

def handler
  @handler
end

Instance Method Details

#add_breakpoint(context, message) ⇒ Object



331
332
333
334
335
336
337
338
339
340
341
# File 'lib/breakpoint.rb', line 331

def add_breakpoint(context, message)
  workspace = IRB::WorkSpace.new(context)
  workspace.extend(DRbUndumped)

  sleep(0.5) until @handler

  @handler.untaint
  @handler.call(workspace, message)
rescue Errno::ECONNREFUSED, DRb::DRbConnError
  raise if Breakpoint.use_drb? 
end

#collisionObject



321
322
323
324
325
326
327
# File 'lib/breakpoint.rb', line 321

def collision
  sleep(0.5) until @collision_handler

  @collision_handler.untaint

  @collision_handler.call
end

#pingObject



329
# File 'lib/breakpoint.rb', line 329

def ping() end