summaryrefslogtreecommitdiff
path: root/lib/highline/terminal/io_console.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/highline/terminal/io_console.rb')
-rw-r--r--lib/highline/terminal/io_console.rb11
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/highline/terminal/io_console.rb b/lib/highline/terminal/io_console.rb
index e9ff925..d28ee0d 100644
--- a/lib/highline/terminal/io_console.rb
+++ b/lib/highline/terminal/io_console.rb
@@ -1,28 +1,35 @@
-# coding: utf-8
+# frozen_string_literal: true
class HighLine
class Terminal
# io/console option for HighLine::Terminal.
# It's the most used terminal.
+ # TODO: We're rescuing when not a terminal.
+ # We should make a more robust implementation.
class IOConsole < Terminal
# (see Terminal#terminal_size)
def terminal_size
output.winsize.reverse
+ rescue Errno::ENOTTY
end
# (see Terminal#raw_no_echo_mode)
def raw_no_echo_mode
input.echo = false
+ rescue Errno::ENOTTY
end
# (see Terminal#restore_mode)
def restore_mode
input.echo = true
+ rescue Errno::ENOTTY
end
# (see Terminal#get_character)
- def get_character # rubocop:disable Naming/AccessorMethodName
+ def get_character
input.getch # from ruby io/console
+ rescue Errno::ENOTTY
+ input.getc
end
end
end