Class: WorkTimer::Work
- Inherits:
-
Object
- Object
- WorkTimer::Work
- Defined in:
- lib/work_timer.rb
Instance Method Summary collapse
- #end_work(endTime = nil) ⇒ Object
-
#initialize(fileName) ⇒ Work
constructor
A new instance of Work.
- #record_time ⇒ Object
- #start_work(startTime = nil) ⇒ Object
-
#total_time ⇒ Object
戻り値はString.
- #view ⇒ Object
Constructor Details
#initialize(fileName) ⇒ Work
Returns a new instance of Work.
5 6 7 |
# File 'lib/work_timer.rb', line 5 def initialize(fileName) @fileName = fileName end |
Instance Method Details
#end_work(endTime = nil) ⇒ Object
13 14 15 16 |
# File 'lib/work_timer.rb', line 13 def end_work(endTime = nil) @endTime ||= Time.now stop_view end |
#record_time ⇒ Object
37 38 39 40 41 42 |
# File 'lib/work_timer.rb', line 37 def record_time File.open(@fileName, "a+") do |f| workTime = (@endTime.gmtime - @startTime.gmtime.to_i).strftime("%T") f.puts @startTime.localtime, @endTime.localtime, workTime end end |
#start_work(startTime = nil) ⇒ Object
9 10 11 |
# File 'lib/work_timer.rb', line 9 def start_work(startTime = nil) @startTime ||= Time.now end |
#total_time ⇒ Object
戻り値はString
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/work_timer.rb', line 19 def total_time totalTime = 0 begin f = File.open(@fileName, "r") rescue return sec2seq(totalTime) end f.each_line do |line| next if line =~ /^\d{4}-\d{2}-\d{2}/ # **:**:**表示を秒に変換 line.chomp.split(":").each_with_index do |time, i| totalTime += time.to_i * 60 ** (2 - i) end end f.close sec2seq(totalTime) end |
#view ⇒ Object
44 45 46 47 48 49 50 51 52 53 |
# File 'lib/work_timer.rb', line 44 def view @view_thread = Thread.new do loop do workingTime = Time.now - @startTime.to_i print "\r\033[32m#{(workingTime + 60 * 60 * 15).strftime("%T")}\033[0m" sleep 1 end end true end |