Module: TogglEntriesParameter

Included in:
TogglParameter
Defined in:
lib/simple_slack/toggls/toggl_entries_parameter.rb

Instance Method Summary collapse

Instance Method Details

#day_entries(day = Time.now.to_date) ⇒ Object



7
8
9
10
11
12
# File 'lib/simple_slack/toggls/toggl_entries_parameter.rb', line 7

def day_entries(day = Time.now.to_date)
  entries.select do |entry|
    start_date = Time.parse(entry["start"]).getlocal("+09:00").to_date
    start_date == day
  end
end

#entriesObject



3
4
5
# File 'lib/simple_slack/toggls/toggl_entries_parameter.rb', line 3

def entries
  @entries ||= toggl_client.my_time_entries
end

#entry_info(entry = latest_entry) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/simple_slack/toggls/toggl_entries_parameter.rb', line 24

def (entry = latest_entry)
  # 現在作業中(終了時間がない)であれば現在日時を終了時間として取得
  stop_time_org  = entry["stop"].nil? ? Time.now : Time.parse(entry["stop"])

  start_time = Time.parse(entry["start"]).getlocal("+09:00")
  stop_time  = stop_time_org.getlocal("+09:00")
  diff_time  = (stop_time - start_time)/3600

  # 0.1h 以下の表示になるようであれば 分表示に変更する
  if diff_time >= 0.1
    work_time = "#{diff_time.round(2)}h"
  else
    work_time = "#{(diff_time * 60).round(2)}m"
  end

  tag = entry["tags"].join(" ") unless entry["tags"].nil?
  description = entry["description"]

  "#{tag} #{description} \(#{work_time}\)"
end

#entry_info_hash(entry = latest_entry) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/simple_slack/toggls/toggl_entries_parameter.rb', line 45

def (entry = latest_entry)
  # 現在作業中(終了時間がない)であれば現在日時を終了時間として取得
  stop_time_org  = entry["stop"].nil? ? Time.now : Time.parse(entry["stop"])

  start_time = Time.parse(entry["start"]).getlocal("+09:00")
  stop_time  = stop_time_org.getlocal("+09:00")
  diff_time  = (stop_time - start_time)/60

  work_time = diff_time.round(2)

  tag = entry["tags"].join(" ") unless entry["tags"].nil?
  description = entry["description"]

  { "#{tag} #{description}" => work_time }
end

#latest_entryObject



14
15
16
# File 'lib/simple_slack/toggls/toggl_entries_parameter.rb', line 14

def latest_entry
  entries.sort_by{ |entry| entry["start"] }.last
end

#working_entryObject



18
19
20
21
22
# File 'lib/simple_slack/toggls/toggl_entries_parameter.rb', line 18

def working_entry
  if latest_entry["stop"].nil?
    latest_entry
  end
end