class RSpec::Core::Bisect::Channel
Wraps a pipe to support sending objects between a child and parent process. @private
Public Class Methods
new()
click to toggle source
# File lib/rspec/core/bisect/utilities.rb, line 35 def initialize @read_io, @write_io = IO.pipe end
Public Instance Methods
close()
click to toggle source
rubocop:enable Security/MarshalLoad
# File lib/rspec/core/bisect/utilities.rb, line 51 def close @read_io.close @write_io.close end
receive()
click to toggle source
rubocop:disable Security/MarshalLoad
# File lib/rspec/core/bisect/utilities.rb, line 45 def receive packet_size = Integer(@read_io.gets) Marshal.load(@read_io.read(packet_size)) end
send(message)
click to toggle source
# File lib/rspec/core/bisect/utilities.rb, line 39 def send(message) packet = Marshal.dump(message) @write_io.write("#{packet.bytesize}\n#{packet}") end