class Rbtclk::Clock
Public Class Methods
new(font: "clb8x8", format: "%X", color: "black")
click to toggle source
# File lib/rbtclk/clock.rb, line 14 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/clock.rb, line 20 def show Curses.init_screen Curses.start_color Curses.use_default_colors Curses.init_pair(1, translate(@color), -1) Curses.curs_set(0) 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/clock.rb, line 53 def refresh Curses.clear Curses.setpos(0, 0) Curses.attron(Curses.color_pair(1)) Curses.addstr(@artii.asciify(Time.now.strftime(@format))) Curses.refresh end