In Files

Parent

Test::Unit::Runner::Worker

Attributes

file[RW]
io[R]
loadpath[RW]
pid[R]
real_file[RW]
status[RW]

Public Class Methods

launch(ruby,args=[]) click to toggle source
 
               # File test/unit.rb, line 239
def self.launch(ruby,args=[])
  io = IO.popen([*ruby,
                "#{File.dirname(__FILE__)}/unit/parallel.rb",
                *args], "rb+")
  new(io, io.pid, :waiting)
end
            
new(io, pid, status) click to toggle source
 
               # File test/unit.rb, line 246
def initialize(io, pid, status)
  @io = io
  @pid = pid
  @status = status
  @file = nil
  @real_file = nil
  @loadpath = []
  @hooks = {}
end
            

Public Instance Methods

close() click to toggle source
 
               # File test/unit.rb, line 287
def close
  @io.close
  self
end
            
died(*additional) click to toggle source
 
               # File test/unit.rb, line 292
def died(*additional)
  @status = :quit
  @io.close

  call_hook(:dead,*additional)
end
            
hook(id,&block) click to toggle source
 
               # File test/unit.rb, line 276
def hook(id,&block)
  @hooks[id] ||= []
  @hooks[id] << block
  self
end
            
puts(*args) click to toggle source
 
               # File test/unit.rb, line 256
def puts(*args)
  @io.puts(*args)
end
            
read() click to toggle source
 
               # File test/unit.rb, line 282
def read
  res = (@status == :quit) ? @io.read : @io.gets
  res && res.chomp
end
            
run(task,type) click to toggle source
 
               # File test/unit.rb, line 260
def run(task,type)
  @file = File.basename(task).gsub(/\.rb/,"")
  @real_file = task
  begin
    puts "loadpath #{[Marshal.dump($:-@loadpath)].pack("m").gsub("\n","")}"
    @loadpath = $:.dup
    puts "run #{task} #{type}"
    @status = :prepare
  rescue Errno::EPIPE
    died
  rescue IOError
    raise unless ["stream closed","closed stream"].include? $!.message
    died
  end
end
            
to_s() click to toggle source
 
               # File test/unit.rb, line 299
def to_s
  if @file
    "#{@pid}=#{@file}"
  else
    "#{@pid}:#{@status.to_s.ljust(7)}"
  end
end
            

Commenting is here to help enhance the documentation. For example, sample code, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

blog comments powered by Disqus