Class: Arql::MultiIO

Inherits:
Object show all
Defined in:
lib/arql/multi_io.rb

Instance Method Summary collapse

Constructor Details

#initialize(*targets) ⇒ MultiIO

Returns a new instance of MultiIO.



3
4
5
# File 'lib/arql/multi_io.rb', line 3

def initialize(*targets)
  @targets = targets
end

Instance Method Details

#<<(target) ⇒ Object



22
23
24
25
# File 'lib/arql/multi_io.rb', line 22

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

#closeObject



18
19
20
# File 'lib/arql/multi_io.rb', line 18

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

#delete(io) ⇒ Object



27
28
29
# File 'lib/arql/multi_io.rb', line 27

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

#include?(io) ⇒ Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/arql/multi_io.rb', line 31

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

#write(*args) ⇒ Object



7
8
9
10
11
12
13
14
15
16
# File 'lib/arql/multi_io.rb', line 7

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