lib/cukeforker/worker.rb in cukeforker-0.0.5 vs lib/cukeforker/worker.rb in cukeforker-0.0.6

- old
+ new

@@ -1,21 +1,23 @@ module CukeForker class Worker + include Observable + class << self attr_writer :id def id; @id ||= -1; end end - attr_reader :status, :feature, :pid, :format, :out, :id - attr_accessor :vnc + attr_reader :status, :feature, :pid, :format, :out, :id, :data def initialize(feature, format, out, extra_args = []) @feature = feature @format = format @extra_args = extra_args @out = out - @status, @vnc = nil + @status = nil + @data = OpenStruct.new @id = self.class.id += 1 end def finished? @@ -28,11 +30,15 @@ def failed? status.nil? || status.exitstatus != 0 end def start - @pid = Process.fork { execute_cucumber } + @pid = Process.fork { + changed + notify_observers :on_worker_forked, self + execute_cucumber + } end def args args = %W[--format #{format} --out #{output}] args += @extra_args @@ -45,10 +51,10 @@ "[ #{pid} #{feature} #{status.inspect} #{out} - #{vnc && vnc.display} + #{data} ]" end def output File.join out, "#{basename}.#{format}"