Class: TimeDistribution::Task

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(subject, time_taken, desc) ⇒ Task

Returns a new instance of Task.

Parameters:

  • subject (#to_s)

    The subject on which the task was completed. E.g. A course or project.

  • time_taken (#to_s)

    The amount of time taken on the task (Compatible with ChronicDuration parsing, or a range of times that conform to Chronic parsing).

  • desc (#to_s)

    The task’s description.



10
11
12
13
14
# File 'lib/time_distribution/task.rb', line 10

def initialize(subject, time_taken, desc)
  @subject = subject
  @time_taken = SmartDuration.parse(time_taken)
  @desc = desc
end

Instance Attribute Details

#descObject (readonly)

Returns the value of attribute desc.



5
6
7
# File 'lib/time_distribution/task.rb', line 5

def desc
  @desc
end

#subjectObject (readonly)

Returns the value of attribute subject.



5
6
7
# File 'lib/time_distribution/task.rb', line 5

def subject
  @subject
end

#time_takenObject (readonly)

Returns the value of attribute time_taken.



5
6
7
# File 'lib/time_distribution/task.rb', line 5

def time_taken
  @time_taken
end

Instance Method Details

#to_descObject



18
# File 'lib/time_distribution/task.rb', line 18

def to_desc() @desc.strip end

#to_headlineObject



20
21
22
# File 'lib/time_distribution/task.rb', line 20

def to_headline
  "#{to_hours_s} hours of #{@subject}"
end

#to_hoursObject



24
25
26
# File 'lib/time_distribution/task.rb', line 24

def to_hours
  @time_taken.total / (60 * 60).to_f
end

#to_hours_sObject



28
29
30
# File 'lib/time_distribution/task.rb', line 28

def to_hours_s
  format('%0.2f', to_hours)
end

#to_sObject



16
# File 'lib/time_distribution/task.rb', line 16

def to_s() "#{to_headline}: #{to_desc}" end

#to_ssvObject



32
33
34
# File 'lib/time_distribution/task.rb', line 32

def to_ssv
  format("%-25s%10s", @subject, to_hours_s)
end