class CursesCounter
Public Class Methods
new(countup,counttime)
click to toggle source
# File lib/ScreenTimer.rb, line 72 def initialize(countup,counttime) if countup == true or countup == false then @countup = countup else raise(ArgumentError,"CursesCounter::initialize argument error.") end if countup == false then @countt = counttime else @countt = 0 end Curses::init_screen Curses::setpos(0,0) if countup == true then Curses::addstr("Count UP") else Curses::addstr("Count Down") end Curses::refresh end
Public Instance Methods
start()
click to toggle source
# File lib/ScreenTimer.rb, line 94 def start() Curses::noecho Curses::noraw Curses::crmode Curses::setpos(1,0) Curses::addstr("Please any key to start.") Curses::refresh Curses::getch Curses::deleteln Curses::refresh self.timer end
timerend()
click to toggle source
# File lib/ScreenTimer.rb, line 195 def timerend() Curses::refresh Curses::close_screen end
Protected Instance Methods
cdown()
click to toggle source
# File lib/ScreenTimer.rb, line 158 def cdown() Signal.trap(:INT){exit(0)} Signal.trap(:TERM){} Signal.trap(:HUP){} r = secto(@countt) @countt.downto(0) do |x| Curses::setpos((Curses::lines / 2) + 1,Curses::cols / 2) Curses::deleteln Curses::addstr(r[:h].to_s + ":" + r[:m].to_s + ":" + r[:s].to_s + " || " + x.to_s) Curses::refresh sleep 1 #r[:s] -= 1 if r[:s] == 0 then if r[:m] > 0 then r[:m] -= 1 r[:s] = 60 elsif r[:m] == 0 and r[:h] > 0 then r[:h] -= 1 r[:m] += 59 r[:s] = 60 else break end end if r[:m] == 0 then if r[:h] > 0 then r[:h] -= 1 r[:m] = 60 else break if r[:s] == 0 end end r[:s] -= 1 end end
cup()
click to toggle source
# File lib/ScreenTimer.rb, line 131 def cup() Curses::setpos(Curses::lines / 2,Curses::cols / 2) Signal.trap(:INT){Curses::setpos(Curses::lines,0);Curses::addstr("STOP!!");sleep(1);cup_exit()} Signal.trap(:TERM){} Signal.trap(:HUP){} s,m,h = 0,0,0 loop do Curses::setpos((Curses::lines / 2) + 1,Curses::cols / 2) if s % 60 == 0 and s != 0 then s = 0 m += 1 end if m % 60 == 0 and m != 0 then m = 0 h += 1 end Curses::deleteln Curses::addstr(h.to_s + " : " + m.to_s + " : " + s.to_s + " || " + @countt.to_s) @countt += 1 s += 1 Curses::refresh sleep 1 end end
cup_exit()
click to toggle source
# File lib/ScreenTimer.rb, line 122 def cup_exit() Curses::close_screen() print "TOTAL = " + @countt.to_s + "[s]\n" h = secto(@countt) print h[:h].to_s + "[h] " + h[:m].to_s + "[m] " + h[:s].to_s + "[s]\n" exit 0 end
timer()
click to toggle source
# File lib/ScreenTimer.rb, line 107 def timer() Curses::standout Curses::noraw if @countup == true then self.cup() else self.cdown() end Curses::beep Curses::beep Curses::flash end