Sha256: f032ae326345fe4131bd6d393dc1bc998a4a428d4f4357dfd0317db4a3dbe84c

Contents?: true

Size: 817 Bytes

Versions: 11

Compression:

Stored size: 817 Bytes

Contents

require 'deadly_serious/engine/json_io'

module DeadlySerious
  module Engine
    module SimpleJsonProcess

      def run(readers: [], writers: [])
        reader = JsonIo.new(readers.first) unless readers.empty?
        @writer = JsonIo.new(writers.first) unless writers.empty?

        if reader
          reader.each do |packet|
            if packet.is_a? Array
              super(*packet)
            else
              super(packet)
            end
          end
        else
          super()
        end
      rescue Errno::EPIPE
        # Ignore it. We expect that sometimes =)
      end

      # Send a packet to the next process
      def send(*packet)
        raise 'No "writer" defined' unless @writer
        @writer << packet unless packet.empty?
      end

      alias :emit :send
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
deadly_serious-0.11.0 lib/deadly_serious/engine/simple_json_process.rb
deadly_serious-0.10.0 lib/deadly_serious/engine/simple_json_process.rb
deadly_serious-0.9.5 lib/deadly_serious/engine/simple_json_process.rb
deadly_serious-0.9.4 lib/deadly_serious/engine/simple_json_process.rb
deadly_serious-0.9.3 lib/deadly_serious/engine/simple_json_process.rb
deadly_serious-0.9.2 lib/deadly_serious/engine/simple_json_process.rb
deadly_serious-0.9.1 lib/deadly_serious/engine/simple_json_process.rb
deadly_serious-0.9.0 lib/deadly_serious/engine/simple_json_process.rb
deadly_serious-0.8.1 lib/deadly_serious/engine/simple_json_process.rb
deadly_serious-0.8.0 lib/deadly_serious/engine/simple_json_process.rb
deadly_serious-0.7.0 lib/deadly_serious/engine/simple_json_process.rb