Module: CommandKit::Stdio
- Defined in:
- lib/command_kit/stdio.rb
Overview
Provides access to stdin, stdout, and stderr streams.
Examples
class MyCmd
include CommandKit::Stdio
def run
print 'Name: '
name = gets
puts "Hello #{name}!"
end
end
Testing
Can be initialized with custom stdin, stdout, and stderr streams for testing purposes.
stdin = StringIO.new
stdout = StringIO.new
stderr = StringIO.new
MyCmd.new(stdin: stdin, stdout: stdout, stderr: stderr)
Instance Method Summary collapse
-
#abort(message = nil) ⇒ Object
Overrides
Kernel.abort
to print to #stderr. -
#gets(*arguments) ⇒ Object
Calls
stdin.gets
. - #initialize(stdin: nil, stdout: nil, stderr: nil, **kwargs) ⇒ Object
-
#print(*arguments) ⇒ Object
Calls
stdout.print
. -
#printf(*arguments) ⇒ Object
Calls
stdout.printf
. -
#putc(*arguments) ⇒ Object
Calls
stdout.putc
. -
#puts(*arguments) ⇒ Object
Calls
stdout.puts
. -
#readline(*arguments) ⇒ Object
Calls
stdin.readline
. -
#readlines(*arguments) ⇒ Object
Calls
stdin.readlines
. -
#stderr ⇒ $stderr, IO
Returns the stderr error output stream.
-
#stdin ⇒ $stdin, IO
Returns the stdin input stream.
-
#stdout ⇒ $stdout, IO
Returns the stdout output stream.
Instance Method Details
#abort(message = nil) ⇒ Object
Overrides Kernel.abort
to print to #stderr.
161 162 163 164 |
# File 'lib/command_kit/stdio.rb', line 161 def abort(=nil) stderr.puts() if exit(1) end |
#gets(*arguments) ⇒ Object
Calls stdin.gets
.
92 93 94 |
# File 'lib/command_kit/stdio.rb', line 92 def gets(*arguments) stdin.gets(*arguments) end |
#initialize(stdin: nil, stdout: nil, stderr: nil, **kwargs) ⇒ Object
43 44 45 46 47 48 49 |
# File 'lib/command_kit/stdio.rb', line 43 def initialize(stdin: nil, stdout: nil, stderr: nil, **kwargs) @stdin = stdin @stdout = stdout @stderr = stderr super(**kwargs) end |
#print(*arguments) ⇒ Object
Calls stdout.print
.
140 141 142 |
# File 'lib/command_kit/stdio.rb', line 140 def print(*arguments) stdout.print(*arguments) end |
#printf(*arguments) ⇒ Object
Calls stdout.printf
.
149 150 151 |
# File 'lib/command_kit/stdio.rb', line 149 def printf(*arguments) stdout.printf(*arguments) end |
#putc(*arguments) ⇒ Object
Calls stdout.putc
.
122 123 124 |
# File 'lib/command_kit/stdio.rb', line 122 def putc(*arguments) stdout.putc(*arguments) end |
#puts(*arguments) ⇒ Object
Calls stdout.puts
.
131 132 133 |
# File 'lib/command_kit/stdio.rb', line 131 def puts(*arguments) stdout.puts(*arguments) end |
#readline(*arguments) ⇒ Object
Calls stdin.readline
.
101 102 103 |
# File 'lib/command_kit/stdio.rb', line 101 def readline(*arguments) stdin.readline(*arguments) end |
#readlines(*arguments) ⇒ Object
Calls stdin.readlines
.
110 111 112 |
# File 'lib/command_kit/stdio.rb', line 110 def readlines(*arguments) stdin.readlines(*arguments) end |
#stderr ⇒ $stderr, IO
Returns the stderr error output stream.
83 84 85 |
# File 'lib/command_kit/stdio.rb', line 83 def stderr @stderr || $stderr end |
#stdin ⇒ $stdin, IO
Returns the stdin input stream.
59 60 61 |
# File 'lib/command_kit/stdio.rb', line 59 def stdin @stdin || $stdin end |
#stdout ⇒ $stdout, IO
Returns the stdout output stream.
71 72 73 |
# File 'lib/command_kit/stdio.rb', line 71 def stdout @stdout || $stdout end |