Sha256: c1b58724fba1b689d645ae75796a3cb540889bb836af4d04cf495e3dc327847d

Contents?: true

Size: 662 Bytes

Versions: 1

Compression:

Stored size: 662 Bytes

Contents

module Scripted
  module Output
    class CommandLogger

      attr_reader :logger, :command

      attr_reader :read, :write, :reader

      def initialize(logger, command)

        @logger, @command = logger, command

        @read, @write = IO.pipe

        @reader = Thread.new do
          read.each_char do |char|
            logger.send_to_formatters :each_char, char, command
          end
        end

      end

      def to_io
        write
      end

      def sync
        read.sync
        write.sync
        sleep 0.01
      end

      def close
        sync
        reader.exit
        write.close
        read.close
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
scripted-0.0.1 lib/scripted/output/command_logger.rb