Sha256: a232497a85e2b184608250c7386ed97cd5c1634737a5c3e2114b91105836b20d

Contents?: true

Size: 601 Bytes

Versions: 9

Compression:

Stored size: 601 Bytes

Contents

module DeadlySerious
  module Processes
    class Splitter
      def initialize
        Signal.trap('USR1') { @outputs = @writers.dup }
      end
      def run(readers: [], writers: [])
        @writers ||= writers
	reader = readers.first
        @outputs = @writers.dup
        begin
          reader.each do |line|
            @current = @outputs.first
            @current << line
            @outputs.rotate!
          end
        rescue => e
          puts e.inspect
          @outputs.delete(@current)
          raise e if @outputs.empty?
          retry
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
deadly_serious-0.8.1 lib/deadly_serious/processes/splitter.rb
deadly_serious-0.8.0 lib/deadly_serious/processes/splitter.rb
deadly_serious-0.7.0 lib/deadly_serious/processes/splitter.rb
deadly_serious-0.6.1 lib/deadly_serious/processes/splitter.rb
deadly_serious-0.6.0 lib/deadly_serious/processes/splitter.rb
deadly_serious-0.5.3 lib/deadly_serious/processes/splitter.rb
deadly_serious-0.5.2 lib/deadly_serious/processes/splitter.rb
deadly_serious-0.5.1 lib/deadly_serious/processes/splitter.rb
deadly_serious-0.5.0 lib/deadly_serious/processes/splitter.rb