Class: WorkTimer::Work

Inherits:
Object
  • Object
show all
Defined in:
lib/work_timer.rb

Instance Method Summary collapse

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_timeObject



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_timeObject

戻り値は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

#viewObject



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