class PressAnyKey
Constants
- CTRL_C
- MESSAGE
Public Class Methods
new(console: nil, message: MESSAGE)
click to toggle source
# File lib/press_any_key.rb, line 7 def initialize(console: nil, message: MESSAGE) with(console) do |console_rd, console_wr| console_wr.puts message key = console_rd.getch raise Interrupt if key == CTRL_C end end
Private Instance Methods
parse_console(console)
click to toggle source
# File lib/press_any_key.rb, line 26 def parse_console(console) return console if console.kind_of?(Array) && console.count == 2 return [console, console] unless console.nil? if $stdin.tty? && $stdout.tty? console_rd = $stdin console_wr = $stdout else console_rd = console_wr = IO.console end [console_rd, console_wr] end
with(console) { |console_rd, console_wr| ... }
click to toggle source
# File lib/press_any_key.rb, line 17 def with(console) console_rd, console_wr = parse_console(console) yield(console_rd, console_wr) rescue warn "Couldn't connect to TTY!" warn $! warn $!.backtrace end