Class: Trip::Fiber

Inherits:
Object
  • Object
show all
Defined in:
lib/trip/fiber.rb

Overview

The Trip::Fiber class is responsible for creating and controlling an instance of Ruby's Fiber class that will run and trace a piece of Ruby code. This class is not intended to be used directly.

Instance Method Summary collapse

Constructor Details

#initialize(trip) ⇒ Trip::Fiber

Returns an instance of Trip::Fiber.

Parameters:



21
22
23
24
25
# File 'lib/trip/fiber.rb', line 21

def initialize(trip)
  @trip = trip
  @tracer = nil
  @fiber = nil
end

Instance Method Details

#createTrip::Fiber

Creates a fiber.

Returns:



32
33
34
35
36
37
38
39
40
# File 'lib/trip/fiber.rb', line 32

def create
  @fiber = Fiber.new do
    @tracer = TracePoint.new(*events, &method(:receive_event))
    @tracer.enable
    @trip.callable.call
    @tracer.disable
  end
  self
end

#resumeTrip::Event?

Resumes a fiber.

Returns:



47
48
49
50
51
# File 'lib/trip/fiber.rb', line 47

def resume
  @fiber.resume
rescue FiberError
  nil
end