Module: Terminal::Shell::Input

Defined in:
lib/terminal/shell.rb

Defined Under Namespace

Classes: ArrayWriter, CopyWriter, EnumerableWriter, Writer

Class Method Summary collapse

Class Method Details

.for(obj) ⇒ Object



82
83
84
85
86
87
88
89
90
# File 'lib/terminal/shell.rb', line 82

def self.for(obj)
  return unless obj
  return CopyWriter.new(obj) if obj.respond_to?(:readpartial)
  return CopyWriter.new(obj.to_io) if obj.respond_to?(:to_io)
  return ArrayWriter.new(obj) if obj.is_a?(Array)
  return EnumerableWriter.new(obj) if obj.respond_to?(:each)
  return ArrayWriter.new(obj.to_a) if obj.respond_to?(:to_a)
  Writer.new(obj)
end