class Rbtclk::CountupTimer
Public Class Methods
new(font: "clb8x8", format: "%X", color: "black")
click to toggle source
# File lib/rbtclk/countup_timer.rb, line 15 def initialize(font: "clb8x8", format: "%X", color: "black") @artii = Artii::Base.new(font: font) @format = format @color = color end
Public Instance Methods
show()
click to toggle source
# File lib/rbtclk/countup_timer.rb, line 21 def show Curses.init_screen Curses.start_color Curses.use_default_colors Curses.init_pair(1, translate(@color), -1) Curses.curs_set(0) @start_time = Time.now begin view_thread = Thread.new do loop do refresh sleep(1) end end input_thread = Thread.new do loop do case Curses.getch when "q" Thread.kill(view_thread) Thread.kill(input_thread) end end end view_thread.join input_thread.join ensure Curses.close_screen end end
Private Instance Methods
refresh()
click to toggle source
# File lib/rbtclk/countup_timer.rb, line 56 def refresh Curses.clear Curses.setpos(0, 0) Curses.attron(Curses.color_pair(1)) Curses.addstr(@artii.asciify((Time.parse("1/1") + (Time.now - @start_time)).strftime(@format))) Curses.refresh end