class DigiMoji::CLI
Public Instance Methods
clear_screen()
click to toggle source
# File lib/digi_moji/cli.rb, line 76 def clear_screen print "\e[?25l" # hide cursor print "\e[2J" # clear screen print "\e[2;0H" end
down_symbolize_key(opts)
click to toggle source
# File lib/digi_moji/cli.rb, line 61 def down_symbolize_key(opts) opts.inject({}) do |h, (k, v)| h[k.to_s.downcase.intern] = v; h end end
new(word)
click to toggle source
# File lib/digi_moji/cli.rb, line 11 def new(word) opts = down_symbolize_key(options) str = String.new(word, opts) puts str rescue => e puts "'#{word}' includes undefined character(s)." end
reset_screen()
click to toggle source
# File lib/digi_moji/cli.rb, line 82 def reset_screen print "\e[?25h" # show cursor end
time()
click to toggle source
# File lib/digi_moji/cli.rb, line 20 def time opts = down_symbolize_key(options) trap(:INT) { exit 0 } loop do time = time_format(Time.at(Time.now.to_i)) str = String.new(time, opts) clear_screen puts str sleep 1.0 end ensure reset_screen end
time_format(t)
click to toggle source
# File lib/digi_moji/cli.rb, line 86 def time_format(t) "%02d:%02d:%02d" % [t.hour, t.min, t.sec] end
time_in_sec(time, unit)
click to toggle source
# File lib/digi_moji/cli.rb, line 67 def time_in_sec(time, unit) case unit when 'sec' then time.to_i when 'min' then time.to_i * 60 when 'hour' then time.to_i * 60 * 60 else time.to_i end end
timer(sec)
click to toggle source
# File lib/digi_moji/cli.rb, line 38 def timer(sec) opts = down_symbolize_key(options) message, message_color = opts.delete(:message), opts.delete(:message_color) unit = opts.delete(:unit) t = Time.new('00:00:00') + time_in_sec(sec, unit) trap(:INT) { exit 0 } loop do time = time_format(t) str = String.new(time, opts) clear_screen puts str sleep 1.0 break if [t.hour, t.min, t.sec].all?(&:zero?) t -= 1 end clear_screen puts String.new(message, fg:message_color) sleep 2.0 ensure reset_screen end