Sha256: 15e4fed91bb9ce4cd5fa829c2b66ea97f6cd7f2e573623436652b3dcaf9dc834

Contents?: true

Size: 559 Bytes

Versions: 37

Compression:

Stored size: 559 Bytes

Contents

module Arql
  class MultiIO
    def initialize(*targets)
      @targets = targets
    end

    def write(*args)
      @targets.each do |t|
        if t.isatty
          t.write(*args)
        else
          t.write(*(args.map { |str| str.gsub(/\e\[(\d+)m/, '')}))
        end
        t.flush
      end
    end

    def close
      @targets.each(&:close)
    end

    def <<(target)
      @targets ||= []
      @targets << target
    end

    def delete(io)
      @targets.delete(io)
    end

    def include?(io)
      @targets.include?(io)
    end
  end
end

Version data entries

37 entries across 37 versions & 1 rubygems

Version Path
arql-0.3.21 lib/arql/multi_io.rb
arql-0.3.20 lib/arql/multi_io.rb
arql-0.3.19 lib/arql/multi_io.rb
arql-0.3.18 lib/arql/multi_io.rb
arql-0.3.17 lib/arql/multi_io.rb
arql-0.3.16 lib/arql/multi_io.rb
arql-0.3.15 lib/arql/multi_io.rb
arql-0.3.14 lib/arql/multi_io.rb
arql-0.3.13 lib/arql/multi_io.rb
arql-0.3.12 lib/arql/multi_io.rb
arql-0.3.11 lib/arql/multi_io.rb
arql-0.3.10 lib/arql/multi_io.rb
arql-0.3.9 lib/arql/multi_io.rb
arql-0.3.8 lib/arql/multi_io.rb
arql-0.3.7 lib/arql/multi_io.rb
arql-0.3.6 lib/arql/multi_io.rb
arql-0.3.5 lib/arql/multi_io.rb