Class: Xfel::Timew::Report
- Inherits:
-
Object
- Object
- Xfel::Timew::Report
- Defined in:
- lib/xfel/timew/report.rb
Overview
Main entry point for TimeWarrior report
Instance Method Summary collapse
- #convert(item) ⇒ Object
-
#initialize ⇒ Report
constructor
A new instance of Report.
- #key_from_tags(tags) ⇒ Object
- #project_from_key(key) ⇒ Object
- #read ⇒ Object
- #task_rc ⇒ Object
Constructor Details
Instance Method Details
#convert(item) ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/xfel/timew/report.rb', line 54 def convert(item) key = (item['tags']) return unless key && item['end'] start = DateTime.parse(item['start']) st = start.strftime('%Y-%m-%dT%H:%M:%S.%L%z') finish = DateTime.parse(item['end']) duration = finish.to_time.to_i - start.to_time.to_i project = project_from_key(key) { project: project, key: key, start: st, duration: duration } end |
#key_from_tags(tags) ⇒ Object
41 42 43 44 45 46 47 48 |
# File 'lib/xfel/timew/report.rb', line 41 def () return unless .each do |x| return x unless (x =~ /^[A-Z0-9]+-[0-9]+$/).nil? end nil end |
#project_from_key(key) ⇒ Object
50 51 52 |
# File 'lib/xfel/timew/report.rb', line 50 def project_from_key(key) key.split('-')[0] end |
#read ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/xfel/timew/report.rb', line 28 def read header_finished = false json_str = '' while (line = gets) if !header_finished header_finished = line.length == 1 else json_str += line end end JSON.parse(json_str) end |
#task_rc ⇒ Object
24 25 26 |
# File 'lib/xfel/timew/report.rb', line 24 def task_rc 'rc.report.list.columns="description" rc.report.list.labels="Notes" rc.verbose=label' end |